Explorar o código

Merge remote-tracking branch 'origin/dev/20210120_2.0.1' into his/common

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
#	src/main/resources/application-dev.yml
#	src/main/resources/application-local.yml
#	src/main/resources/application-pre.yml
#	src/main/resources/application-pro.yml
#	src/main/resources/application-test.yml
#	src/main/resources/mapper/BehospitalInfoMapper.xml
liuqq %!s(int64=4) %!d(string=hai) anos
pai
achega
c35f7a3732
Modificáronse 100 ficheiros con 8958 adicións e 3953 borrados
  1. 323 1
      doc/029.20201224v2.0.0/qc_initv2.0.0.sql
  2. 36 0
      doc/030.20201224v2.0.1/qc_initv2.0.1.sql
  3. 7 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  4. 7 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  5. 40 0
      src/main/java/com/diagbot/dto/CaseScoreDTO.java
  6. 1 1
      src/main/java/com/diagbot/dto/EntryStasByDeptDTO.java
  7. 185 0
      src/main/java/com/diagbot/dto/QualityControlDTO.java
  8. 188 0
      src/main/java/com/diagbot/dto/QualityControlDeptDTO.java
  9. 139 0
      src/main/java/com/diagbot/dto/QualityControlNullDTO.java
  10. 1 1
      src/main/java/com/diagbot/dto/ReBeHosByDeptDTO.java
  11. 13 6
      src/main/java/com/diagbot/dto/ReBeHosDetailByDeptDTO.java
  12. 1 0
      src/main/java/com/diagbot/dto/ReBeHosMergeDTO.java
  13. 7 7
      src/main/java/com/diagbot/entity/MedLisInfo.java
  14. 7 7
      src/main/java/com/diagbot/entity/MedPacsInfo.java
  15. 59 15
      src/main/java/com/diagbot/entity/QcType.java
  16. 55 34
      src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java
  17. 1 0
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  18. 63 7
      src/main/java/com/diagbot/facade/ConsoleByDeptExportFacade.java
  19. 502 4
      src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java
  20. 66 10
      src/main/java/com/diagbot/facade/ConsoleExportFacade.java
  21. 441 1
      src/main/java/com/diagbot/facade/ConsoleFacade.java
  22. 0 5
      src/main/java/com/diagbot/facade/FilterFacade.java
  23. 15 8
      src/main/java/com/diagbot/facade/SysUserFacade.java
  24. 48 40
      src/main/java/com/diagbot/facade/data/ABasDeptInfoFacade.java
  25. 46 39
      src/main/java/com/diagbot/facade/data/ABasDoctorInfoFacade.java
  26. 89 86
      src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java
  27. 63 57
      src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java
  28. 45 39
      src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java
  29. 53 42
      src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java
  30. 4 0
      src/main/java/com/diagbot/facade/data/AHomePageFacade.java
  31. 38 25
      src/main/java/com/diagbot/facade/data/AMedCrisisFacade.java
  32. 122 0
      src/main/java/com/diagbot/facade/data/AMedLisInfoFacade.java
  33. 34 34
      src/main/java/com/diagbot/facade/data/AMedLisResultFacade.java
  34. 124 0
      src/main/java/com/diagbot/facade/data/AMedPacsInfoFacade.java
  35. 33 33
      src/main/java/com/diagbot/facade/data/AMedPacsResultFacade.java
  36. 3 0
      src/main/java/com/diagbot/facade/data/AMedicalRecordContentFacade.java
  37. 13 6
      src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java
  38. 134 48
      src/main/java/com/diagbot/facade/data/ColumnFacade.java
  39. 0 152
      src/main/java/com/diagbot/facade/str/AStrAdmissionNoteFacade.java
  40. 0 162
      src/main/java/com/diagbot/facade/str/AStrBloodResultFacade.java
  41. 0 154
      src/main/java/com/diagbot/facade/str/AStrConsultationApplyFacade.java
  42. 0 155
      src/main/java/com/diagbot/facade/str/AStrConsultationNoteFacade.java
  43. 0 153
      src/main/java/com/diagbot/facade/str/AStrConsultationRecordFacade.java
  44. 0 159
      src/main/java/com/diagbot/facade/str/AStrConsultationResultFacade.java
  45. 0 150
      src/main/java/com/diagbot/facade/str/AStrCrisisNoteFacade.java
  46. 0 152
      src/main/java/com/diagbot/facade/str/AStrDeathDiscussionFacade.java
  47. 0 153
      src/main/java/com/diagbot/facade/str/AStrDeathNoteFacade.java
  48. 0 150
      src/main/java/com/diagbot/facade/str/AStrDifficultCaseFacade.java
  49. 0 150
      src/main/java/com/diagbot/facade/str/AStrFirstRecordFacade.java
  50. 0 149
      src/main/java/com/diagbot/facade/str/AStrIllCriticallyFacade.java
  51. 0 149
      src/main/java/com/diagbot/facade/str/AStrIllSeriouslFacade.java
  52. 0 153
      src/main/java/com/diagbot/facade/str/AStrLeaveHospitalFacade.java
  53. 0 154
      src/main/java/com/diagbot/facade/str/AStrOperativeFirstRecord.java
  54. 0 154
      src/main/java/com/diagbot/facade/str/AStrOperativeNoteFacade.java
  55. 0 151
      src/main/java/com/diagbot/facade/str/AStrPeriodConclusionFacade.java
  56. 0 152
      src/main/java/com/diagbot/facade/str/AStrPreoperativeDiscussionFacade.java
  57. 0 152
      src/main/java/com/diagbot/facade/str/AStrRescueNoteFacade.java
  58. 0 151
      src/main/java/com/diagbot/facade/str/AStrTransferInNoteFacade.java
  59. 0 149
      src/main/java/com/diagbot/facade/str/AStrTransferOutNoteFacade.java
  60. 0 152
      src/main/java/com/diagbot/facade/str/AStrWardRecordFacade.java
  61. 231 0
      src/main/java/com/diagbot/facade/str/BStrAdmissionNoteFacade.java
  62. 231 0
      src/main/java/com/diagbot/facade/str/BStrBloodResultFacade.java
  63. 104 20
      src/main/java/com/diagbot/facade/str/AStrBloodTransfusionFacade.java
  64. 236 0
      src/main/java/com/diagbot/facade/str/BStrConsultationApplyFacade.java
  65. 237 0
      src/main/java/com/diagbot/facade/str/BStrConsultationNoteFacade.java
  66. 235 0
      src/main/java/com/diagbot/facade/str/BStrConsultationRecordFacade.java
  67. 241 0
      src/main/java/com/diagbot/facade/str/BStrConsultationResultFacade.java
  68. 64 0
      src/main/java/com/diagbot/facade/str/BStrContentFacade.java
  69. 228 0
      src/main/java/com/diagbot/facade/str/BStrCrisisNoteFacade.java
  70. 231 0
      src/main/java/com/diagbot/facade/str/BStrDeathDiscussionFacade.java
  71. 229 0
      src/main/java/com/diagbot/facade/str/BStrDeathNoteFacade.java
  72. 227 0
      src/main/java/com/diagbot/facade/str/BStrDifficultCaseFacade.java
  73. 224 0
      src/main/java/com/diagbot/facade/str/BStrFirstRecordFacade.java
  74. 223 0
      src/main/java/com/diagbot/facade/str/BStrIllCriticallyFacade.java
  75. 223 0
      src/main/java/com/diagbot/facade/str/BStrIllSeriouslFacade.java
  76. 198 0
      src/main/java/com/diagbot/facade/str/BStrInformedConsentFacade.java
  77. 232 0
      src/main/java/com/diagbot/facade/str/BStrLeaveHospitalFacade.java
  78. 235 0
      src/main/java/com/diagbot/facade/str/BStrOperativeFirstRecordFacade.java
  79. 236 0
      src/main/java/com/diagbot/facade/str/BStrOperativeNoteFacade.java
  80. 225 0
      src/main/java/com/diagbot/facade/str/BStrPeriodConclusionFacade.java
  81. 228 0
      src/main/java/com/diagbot/facade/str/BStrPreoperativeDiscussionFacade.java
  82. 232 0
      src/main/java/com/diagbot/facade/str/BStrRescueNoteFacade.java
  83. 199 0
      src/main/java/com/diagbot/facade/str/BStrTalkInformFacade.java
  84. 228 0
      src/main/java/com/diagbot/facade/str/BStrTransferInNoteFacade.java
  85. 225 0
      src/main/java/com/diagbot/facade/str/BStrTransferOutNoteFacade.java
  86. 228 0
      src/main/java/com/diagbot/facade/str/BStrWardRecordFacade.java
  87. 59 0
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  88. 2 0
      src/main/java/com/diagbot/mapper/MedLisInfoMapper.java
  89. 1 3
      src/main/java/com/diagbot/mapper/MedPacsInfoMapper.java
  90. 1 1
      src/main/java/com/diagbot/mapper/QcresultInfoMapper.java
  91. 3 2
      src/main/java/com/diagbot/mapper/SysMenuMapper.java
  92. 67 0
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  93. 1 1
      src/main/java/com/diagbot/service/QcresultInfoService.java
  94. 3 2
      src/main/java/com/diagbot/service/SysMenuService.java
  95. 179 0
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  96. 0 6
      src/main/java/com/diagbot/service/impl/MedLisInfoServiceImpl.java
  97. 0 1
      src/main/java/com/diagbot/service/impl/MedPacsInfoServiceImpl.java
  98. 1 1
      src/main/java/com/diagbot/service/impl/QcresultInfoServiceImpl.java
  99. 5 4
      src/main/java/com/diagbot/service/impl/SysMenuServiceImpl.java
  100. 0 0
      src/main/java/com/diagbot/util/ColumnCacheUtil.java

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 323 - 1
doc/029.20201224v2.0.0/qc_initv2.0.0.sql


+ 36 - 0
doc/030.20201224v2.0.1/qc_initv2.0.1.sql

@@ -0,0 +1,36 @@
+use `qc`;
+/**
+注意:
+1、中间表的新增或修改需要按照实际的唯一字段来进行操作
+例如:新增sys_role_menu中数据需要sys_menu中指定的id、menu_id,否则可能会失效!!!
+2、按照顺序执行
+ */
+ --全院
+INSERT INTO `sys_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病历质控报表', '17', 'YH-ZKK-BLZK_XQ', '1', '1', '18', '用户-质控科-病历质控报表');
+--开放菜单
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '50', NULL);
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '50', NULL);
+
+--开添加权限
+INSERT INTO `sys_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病历质控报表', '', '/console/qualityControl', 'ALL', '病历质控报表', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '125', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '125', NULL);
+
+--开放权限报表
+INSERT INTO `sys_menu_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `order_nu`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '50', '125', NULL, '病历质控报表');
+
+--科室
+INSERT INTO `sys_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病历质控报表', '18', 'YH-KSZR-BLZK_XQ', '1', '1', '13', '用户-科室主任-病历质控报表-详情');
+--开放菜单
+INSERT INTO .`sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '53', NULL);
+INSERT INTO .`sys_role_menu` (, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '53', NULL);
+
+--开添加权限
+INSERT INTO .`sys_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病历质控报表', '', '/consoleByDept/qualityControlByDept', 'ALL', '病历质控报表(科室)', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '126', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '126', NULL);
+
+--开放权限报表
+INSERT INTO `sys_menu_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `order_nu`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '53', '126', NULL, '病历质控报表-科室');
+
+

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

@@ -187,6 +187,9 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data_str/sendRescueNote").permitAll()
                 .antMatchers("/qc/data_str/sendPeriodConclusion").permitAll()
                 .antMatchers("/qc/data_str/sendPreoperativeDiscussion").permitAll()
+                .antMatchers("/qc/data_str/sendTalkInform").permitAll()
+                .antMatchers("/qc/data_str/sendInformedConsent").permitAll()
+                .antMatchers("/qc/data_str/sendContent").permitAll()
                 .antMatchers("/qc/doctoradvice/getPage").permitAll()
                 .antMatchers("/qc/medPacsInfo/getCheckPage").permitAll()
                 .antMatchers("/qc/medLisInfo/getExaminePage").permitAll()
@@ -230,6 +233,10 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/consoleByDept/medicalCheckFormKs").permitAll()
                 .antMatchers("/print/export/medicalCheckExportByDept").permitAll()
                 .antMatchers("/consoleByDept/medicalCheckTitleKs").permitAll()
+                .antMatchers("/console/qualityControl").permitAll()
+                .antMatchers("/console/export/qualityControlExport").permitAll()
+                .antMatchers("/consoleByDept/qualityControlByDept").permitAll()
+                .antMatchers("/print/export/qualityControlExportByDept").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -231,6 +231,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data_str/sendRescueNote", request)
                 || matchers("/qc/data_str/sendPeriodConclusion", request)
                 || matchers("/qc/data_str/sendPreoperativeDiscussion", request)
+                || matchers("/qc/data_str/sendTalkInform", request)
+                || matchers("/qc/data_str/sendInformedConsent", request)
+                || matchers("/qc/data_str/sendContent", request)
                 || matchers("/qc/doctoradvice/getPage", request)
                 || matchers("/qc/medPacsInfo/getCheckPage", request)
                 || matchers("/qc/medLisInfo/getExaminePage", request)
@@ -274,6 +277,10 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/consoleByDept/medicalCheckFormKs", request)
                 || matchers("/print/export/medicalCheckExportByDept", request)
                 || matchers("/consoleByDept/medicalCheckTitleKs", request)
+                || matchers("/console/qualityControl", request)
+                || matchers("/console/export/qualityControlExport", request)
+                || matchers("/consoleByDept/qualityControlByDept", request)
+                || matchers("/print/export/qualityControlExportByDept", request)
                 || matchers("/", request)) {
             return true;
         }

+ 40 - 0
src/main/java/com/diagbot/dto/CaseScoreDTO.java

@@ -0,0 +1,40 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/4/14 13:07
+ */
+@Getter
+@Setter
+public class CaseScoreDTO {
+
+    //得分
+    private Double score;
+    //提示信息
+    private String msg;
+    //提示信息
+    private String info;
+    //单项否决
+    private String isReject;
+    //模块名称
+    private String modelName;
+    //模块id
+    private String modelId;
+    private String behospitalCode;
+    //模块ID
+    private Long casesId;
+    //模块分数
+    private Double casesScore;
+    // 条目ID
+    private Long casesEntryId;
+
+}

+ 1 - 1
src/main/java/com/diagbot/dto/EntryStasByDeptDTO.java

@@ -19,7 +19,7 @@ public class EntryStasByDeptDTO {
     /**
      * 主治医生
      */
-    @Excel(name = "主医生", width = 30, orderNum = "1")
+    @Excel(name = "主医生", width = 30, orderNum = "1")
     private String doctorName;
     /**
      * 未在24小时内完成会诊数

+ 185 - 0
src/main/java/com/diagbot/dto/QualityControlDTO.java

@@ -0,0 +1,185 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description:病历质控报表返回结构
+ * @Author:cy
+ * @time: 2021/1/20 13:32
+ */
+@Getter
+@Setter
+public class QualityControlDTO {
+
+    /**
+     * 姓名
+     */
+    @Excel(name = "病人姓名", width = 12, orderNum = "1")
+    private String name;
+
+    /**
+     * 病人住院ID
+     */
+    @Excel(name = "住院号", width = 16, orderNum = "2")
+    private String behospitalCode;
+
+    /**
+     * 主管医生id
+     */
+    private String doctorId;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 医生姓名
+     */
+    @Excel(name = "主治医生", width = 12, orderNum = "3")
+    private String doctorName;
+
+    /**
+     * 科室id(科室编码)
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    @Excel(name = "科室名称", width = 16, orderNum = "4")
+    private String deptName;
+
+    /**
+     * 入院时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @Excel(name = "出院时间", width = 25, orderNum = "5", exportFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date leaveHospitalDate;
+
+    /**
+     * 病案首页--
+     */
+    @Excel(name = "病案首页", width = 30, orderNum = "6")
+    private String medHomePage = "无缺陷";
+    /**
+     * 病案首页扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "7")
+    private Double medHomePageScore= 0d;
+
+    /**
+     * 入院记录--
+     */
+    @Excel(name = "入院记录",width = 30, orderNum = "8")
+    private String admissionNote = "无缺陷";
+
+    /**
+     * 入院记录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "9")
+    private Double admissionNoteScore= 0d;
+
+    /**
+     * 首次病程录--
+     */
+    @Excel(name = "首次病程录",width = 30, orderNum = "10")
+    private String firstCourseNote = "无缺陷";
+
+    /**
+     * 首次病程录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "11")
+    private Double firstCourseNoteScore= 0d;
+
+    /**
+     * 病程记录--
+     */
+    @Excel(name = "病程记录",width = 30, orderNum = "12")
+    private String courseRecord = "无缺陷";
+
+    /**
+     * 病程记录扣分
+     */
+    @Excel(name = "扣分", width = 12,orderNum = "13")
+    private Double courseRecordScore= 0d;
+
+    /**
+     * 手术信息--
+     */
+    @Excel(name = "手术信息",width = 30, orderNum = "14")
+    private String  operationInfo = "无缺陷";
+
+    /**
+     * 手术信息扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "15")
+    private Double operationInfoScore= 0d;
+
+    /**
+     * 出院记录--
+     */
+    @Excel(name = "出院记录",width = 30, orderNum = "16")
+    private String  dischargeNote = "无缺陷";
+    /**
+     * 出院记录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "17")
+    private Double  dischargeNoteScore= 0d;
+
+    /**
+     * 医嘱单--
+     */
+    @Excel(name = "医嘱单",width = 30, orderNum = "18")
+    private String  docAdviceNote = "无缺陷";
+    /**
+     * 医嘱单扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "19")
+    private Double docAdviceNoteScore= 0d;
+
+    /**
+     * 其他
+     */
+    @Excel(name = "其他",width = 30, orderNum = "20")
+    private String  otherCase = "无缺陷";
+    /**
+     * 其他扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "21")
+    private Double otherCaseScore= 0d;
+
+    /**
+     * 总分
+     */
+    @Excel(name = "总分",width = 12, orderNum = "22")
+    private Double  totalScore= 0d;
+    /**
+     * 病历等级
+     */
+    @Excel(name = "病历等级",width = 12, orderNum = "23")
+    private String level;
+
+    /**
+     * 病案首页核查人
+     */
+    @Excel(name = "首页检查者", width = 12,orderNum = "24")
+    private String  mrName;
+    /**
+     * 病历核查人
+     */
+    @Excel(name = "病历检查者",width = 12, orderNum = "25")
+    private String chName;
+
+}

+ 188 - 0
src/main/java/com/diagbot/dto/QualityControlDeptDTO.java

@@ -0,0 +1,188 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:病历质控报表返回结构
+ * @Author:cy
+ * @time: 2021/1/20 13:32
+ */
+@Getter
+@Setter
+public class QualityControlDeptDTO {
+
+    /**
+     * 姓名
+     */
+    @Excel(name = "病人姓名", width = 12, orderNum = "1")
+    private String name;
+
+    /**
+     * 病人住院ID
+     */
+    @Excel(name = "住院号", width = 16, orderNum = "2")
+    private String behospitalCode;
+
+    /**
+     * 主管医生id
+     */
+    private String doctorId;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 医生姓名
+     */
+    @Excel(name = "主治医生", width = 12, orderNum = "3")
+    private String doctorName;
+
+    /**
+     * 科室id(科室编码)
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    @Excel(name = "科室名称", width = 16, orderNum = "4")
+    private String deptName;
+
+    /**
+     * 入院时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @Excel(name = "出院时间", width = 25, orderNum = "5", exportFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date leaveHospitalDate;
+
+    /**
+     * 病案首页--
+     */
+    @Excel(name = "病案首页", width = 30, orderNum = "6")
+    private String medHomePage = "无缺陷";
+    /**
+     * 病案首页扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "7")
+    private Double medHomePageScore= 0d;
+
+    /**
+     * 入院记录--
+     */
+    @Excel(name = "入院记录",width = 30, orderNum = "8")
+    private String admissionNote = "无缺陷";
+
+    /**
+     * 入院记录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "9")
+    private Double admissionNoteScore= 0d;
+
+
+    /**
+     * 首次病程录--
+     */
+    @Excel(name = "首次病程录",width = 30, orderNum = "10")
+    private String firstCourseNote = "无缺陷";
+
+    /**
+     * 首次病程录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "11")
+    private Double firstCourseNoteScore= 0d;
+
+    /**
+     * 病程记录--
+     */
+    @Excel(name = "病程记录",width = 30, orderNum = "12")
+    private String courseRecord = "无缺陷";
+
+    /**
+     * 病程记录扣分
+     */
+    @Excel(name = "扣分", width = 12,orderNum = "13")
+    private Double courseRecordScore= 0d;
+
+    /**
+     * 手术信息--
+     */
+    @Excel(name = "手术信息",width = 30, orderNum = "14")
+    private String  operationInfo = "无缺陷";
+
+    /**
+     * 手术信息扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "15")
+    private Double operationInfoScore= 0d;
+
+    /**
+     * 出院记录--
+     */
+    @Excel(name = "出院记录",width = 30, orderNum = "16")
+    private String  dischargeNote = "无缺陷";
+    /**
+     * 出院记录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "17")
+    private Double  dischargeNoteScore= 0d;
+
+    /**
+     * 医嘱单--
+     */
+    @Excel(name = "医嘱单",width = 30, orderNum = "18")
+    private String  docAdviceNote = "无缺陷";
+    /**
+     * 医嘱单扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "19")
+    private Double docAdviceNoteScore= 0d;
+
+    /**
+     * 其他
+     */
+    @Excel(name = "其他",width = 30, orderNum = "20")
+    private String  otherCase = "无缺陷";
+    /**
+     * 其他扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "21")
+    private Double otherCaseScore= 0d;
+
+    /**
+     * 总分
+     */
+    @Excel(name = "总分",width = 12, orderNum = "22")
+    private Double  totalScore= 0d;
+    /**
+     * 病历等级
+     */
+    @Excel(name = "病历等级",width = 12, orderNum = "23")
+    private String level;
+
+    /**
+     * 病案首页核查人
+     */
+    @Excel(name = "首页检查者", width = 12,orderNum = "24")
+    private String  mrName;
+    /**
+     * 病历核查人
+     */
+    @Excel(name = "病历检查者",width = 12, orderNum = "25")
+    private String chName;
+
+
+
+
+}

+ 139 - 0
src/main/java/com/diagbot/dto/QualityControlNullDTO.java

@@ -0,0 +1,139 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description:病历质控报表返回结构
+ * @Author:cy
+ * @time: 2021/1/20 13:32
+ */
+@Getter
+@Setter
+public class QualityControlNullDTO {
+
+
+
+    /**
+     * 病案首页--
+     */
+
+    private String medHomePage;
+
+    /**
+     * 入院记录--
+     */
+
+    private String admissionNote;
+
+
+
+    /**
+     * 首次病程录--
+     */
+
+    private String firstCourseNote;
+
+
+    /**
+     * 病程记录--
+     */
+
+    private String courseRecord;
+
+
+    /**
+     * 手术信息--
+     */
+
+    private String  operationInfo;
+
+
+    /**
+     * 出院记录--
+     */
+
+    private String  dischargeNote;
+
+    /**
+     * 医嘱单--
+     */
+
+    private String  docAdviceNote;
+
+    /**
+     * 其他
+     */
+
+    private String  otherCase;
+
+    /**
+     * 病案首页扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "7")
+    private Double medHomePageScore;
+
+
+    /**
+     * 入院记录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "9")
+    private Double admissionNoteScore;
+
+
+
+    /**
+     * 首次病程录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "11")
+    private Double firstCourseNoteScore;
+
+
+    /**
+     * 病程记录扣分
+     */
+    @Excel(name = "扣分", width = 12,orderNum = "13")
+    private Double courseRecordScore;
+
+
+    /**
+     * 手术信息扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "15")
+    private Double operationInfoScore;
+
+
+    /**
+     * 出院记录扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "17")
+    private Double  dischargeNoteScore;
+
+
+    /**
+     * 医嘱单扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "19")
+    private Double docAdviceNoteScore;
+
+
+    /**
+     * 其他扣分
+     */
+    @Excel(name = "扣分",width = 12, orderNum = "21")
+    private Double otherCaseScore;
+
+    /**
+     * 总分
+     */
+    @Excel(name = "总分",width = 12, orderNum = "22")
+    private Double  totalScore;
+
+
+
+}

+ 1 - 1
src/main/java/com/diagbot/dto/ReBeHosByDeptDTO.java

@@ -40,4 +40,4 @@ public class ReBeHosByDeptDTO {
      */
     @ExcelCollection(name = "", orderNum = "5")
     private List<ReBeHosDetailByDeptDTO> details;
-}
+}

+ 13 - 6
src/main/java/com/diagbot/dto/ReBeHosDetailByDeptDTO.java

@@ -39,31 +39,38 @@ public class ReBeHosDetailByDeptDTO {
      * 科室编码
      */
     private String behDeptId;
+
+    /**
+     * 科室
+     */
+   // @Excel(name = "科室", width = 50, orderNum = "5")
+    private String behDeptName;
+
     /**
      * 主管医生
      */
-    @Excel(name = "主管医生", width = 50, orderNum = "5")
+    @Excel(name = "主管医生", width = 50, orderNum = "6")
     private String doctorName;
     /**
      * 出院日期
      */
-    @Excel(name = "出院日期", format = "yyyy-MM-dd", width = 30, orderNum = "6")
+    @Excel(name = "出院日期", format = "yyyy-MM-dd", width = 30, orderNum = "7")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date leaveHospitalDate;
     /**
      * 入院日期
      */
-    @Excel(name = "入院日期", format = "yyyy-MM-dd", width = 30, orderNum = "7")
+    @Excel(name = "入院日期", format = "yyyy-MM-dd", width = 30, orderNum = "8")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date behospitalDate;
     /**
      * 住院天数
      */
-    @Excel(name = "住院天数", width = 15, orderNum = "8")
+    @Excel(name = "住院天数", width = 15, orderNum = "9")
     private String behospitalDayNum;
     /**
      * 住院费用
      */
-    @Excel(name = "住院费用", width = 15, orderNum = "9")
+    @Excel(name = "住院费用", width = 15, orderNum = "10")
     private String totleFee;
-}
+}

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

@@ -31,6 +31,7 @@ public class ReBeHosMergeDTO {
     private Date leaveHospitalDate;
     private String lastBehDeptId;
     private String lastBehDeptName;
+    private String lastDoctorName;
     private String lastBehospitalCode;
     private Double lastScoreRes;
     private String lastLevel;

+ 7 - 7
src/main/java/com/diagbot/entity/MedLisInfo.java

@@ -1,7 +1,7 @@
 package com.diagbot.entity;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -88,12 +88,12 @@ public class MedLisInfo implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -203,18 +203,18 @@ public class MedLisInfo implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 7 - 7
src/main/java/com/diagbot/entity/MedPacsInfo.java

@@ -1,7 +1,7 @@
 package com.diagbot.entity;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -103,12 +103,12 @@ public class MedPacsInfo implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -239,18 +239,18 @@ public class MedPacsInfo implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 59 - 15
src/main/java/com/diagbot/entity/QcType.java

@@ -37,7 +37,27 @@ public class QcType implements Serializable {
     /**
      * 默认模版是否开启(0-否 1-是)
      */
-    private Long defaultModule;
+    private Integer defaultModule;
+
+    /**
+     * 父类质控id
+     */
+    private String parentTypeId;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 科室ID
+     */
+    private String behDeptId;
+
+    /**
+     * 科室名称
+     */
+    private String behDeptName;
 
     /**
      * 备注
@@ -83,7 +103,6 @@ public class QcType implements Serializable {
     public void setHospitalId(Long hospitalId) {
         this.hospitalId = hospitalId;
     }
-
     public String getName() {
         return name;
     }
@@ -91,7 +110,41 @@ public class QcType implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+    public Integer getDefaultModule() {
+        return defaultModule;
+    }
+
+    public void setDefaultModule(Integer defaultModule) {
+        this.defaultModule = defaultModule;
+    }
+    public String getParentTypeId() {
+        return parentTypeId;
+    }
+
+    public void setParentTypeId(String parentTypeId) {
+        this.parentTypeId = parentTypeId;
+    }
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+    public String getBehDeptId() {
+        return behDeptId;
+    }
 
+    public void setBehDeptId(String behDeptId) {
+        this.behDeptId = behDeptId;
+    }
+    public String getBehDeptName() {
+        return behDeptName;
+    }
+
+    public void setBehDeptName(String behDeptName) {
+        this.behDeptName = behDeptName;
+    }
     public String getRemark() {
         return remark;
     }
@@ -99,7 +152,6 @@ public class QcType implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark;
     }
-
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -107,7 +159,6 @@ public class QcType implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-
     public Date getGmtCreate() {
         return gmtCreate;
     }
@@ -115,7 +166,6 @@ public class QcType implements Serializable {
     public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-
     public Date getGmtModified() {
         return gmtModified;
     }
@@ -123,7 +173,6 @@ public class QcType implements Serializable {
     public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
-
     public String getCreator() {
         return creator;
     }
@@ -131,7 +180,6 @@ public class QcType implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
-
     public String getModifier() {
         return modifier;
     }
@@ -140,14 +188,6 @@ public class QcType implements Serializable {
         this.modifier = modifier;
     }
 
-    public Long getDefaultModule() {
-        return defaultModule;
-    }
-
-    public void setDefaultModule(Long defaultModule) {
-        this.defaultModule = defaultModule;
-    }
-
     @Override
     public String toString() {
         return "QcType{" +
@@ -155,6 +195,10 @@ public class QcType implements Serializable {
                 ", hospitalId=" + hospitalId +
                 ", name=" + name +
                 ", defaultModule=" + defaultModule +
+                ", parentTypeId=" + parentTypeId +
+                ", sex=" + sex +
+                ", behDeptId=" + behDeptId +
+                ", behDeptName=" + behDeptName +
                 ", remark=" + remark +
                 ", isDeleted=" + isDeleted +
                 ", gmtCreate=" + gmtCreate +

+ 55 - 34
src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java

@@ -1,17 +1,12 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.dto.BasDeptInfoDTO;
-import com.diagbot.entity.BasDeptInfo;
-import com.diagbot.entity.BasDoctorInfo;
-import com.diagbot.entity.SysUserDept;
+import com.diagbot.entity.*;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.BasDoctorInfoServiceImpl;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.SysUserUtils;
-import com.diagbot.vo.BasDeptInfoVO;
 import com.diagbot.vo.data.BasDoctorInfoVO;
-import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -19,6 +14,7 @@ import org.springframework.stereotype.Component;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @Description:
@@ -31,6 +27,8 @@ public class BasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
     SysUserDeptFacade sysUserDeptFacade;
     @Autowired
     BasDeptInfoFacade basDeptInfoFacade;
+    @Autowired
+    BehospitalInfoFacade behospitalInfoFacade;
 
     /**
      * 获取医院医生下拉列表信息
@@ -39,37 +37,60 @@ public class BasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
      * @return 医院医生下拉列表信息
      */
     public List<BasDoctorInfo> getDoctorByDept(BasDoctorInfoVO basDoctorInfoVO) {
-        basDoctorInfoVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
-        basDoctorInfoVO.setUserId(Long.valueOf( SysUserUtils.getCurrentPrincipleID()));
-        QueryWrapper<SysUserDept> userDeptWrapper = new QueryWrapper<>();
-        List<BasDoctorInfo> list = new ArrayList<>();
-                userDeptWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
-        userDeptWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        userDeptWrapper.eq("user_id",basDoctorInfoVO.getUserId());
-        List<SysUserDept> UserDeptlist = sysUserDeptFacade.list(userDeptWrapper);
-        HashSet<String> deptSet = new HashSet<String>();
+            basDoctorInfoVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            basDoctorInfoVO.setUserId(Long.valueOf( SysUserUtils.getCurrentPrincipleID()));
+            QueryWrapper<SysUserDept> userDeptWrapper = new QueryWrapper<>();
+            List<BehospitalInfo> list = new ArrayList<>();
+            List<BasDoctorInfo> doctorData = new ArrayList<>();
+                    userDeptWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
+            userDeptWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+            userDeptWrapper.eq("user_id",basDoctorInfoVO.getUserId());
+            List<SysUserDept> UserDeptlist = sysUserDeptFacade.list(userDeptWrapper);
+            Set<String> deptSet = new HashSet<String>();
+
         if(ListUtil.isNotEmpty(UserDeptlist)){
-            UserDeptlist.forEach(sysUserDept->{
-                deptSet.add(sysUserDept.getDeptId());
-            });
-            QueryWrapper<BasDeptInfo> deptInfo = new QueryWrapper<>();
-            deptInfo.eq("hospital_id",basDoctorInfoVO.getHospitalId());
-            deptInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
-            deptInfo.eq("dept_name",basDoctorInfoVO.getDeptName());
-            deptInfo.in("dept_id",deptSet);
-            BasDeptInfo deptOne = basDeptInfoFacade.getOne(deptInfo);
-            QueryWrapper<BasDoctorInfo> QueryWrapper = new QueryWrapper<>();
-            QueryWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
-            QueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-            QueryWrapper.eq("dept_id",deptOne.getDeptId());
-            if(StringUtils.isNotEmpty(basDoctorInfoVO.getInputStr())){
-                QueryWrapper.like("name",basDoctorInfoVO.getInputStr());
+                UserDeptlist.forEach(sysUserDept->{
+                    deptSet.add(sysUserDept.getDeptId());
+                });
+                QueryWrapper<BasDeptInfo> deptInfo = new QueryWrapper<>();
+                deptInfo.eq("hospital_id",basDoctorInfoVO.getHospitalId());
+                deptInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
+                deptInfo.eq("dept_name",basDoctorInfoVO.getDeptName());
+                deptInfo.in("dept_id",deptSet);
+                List<BasDeptInfo> listInfo = basDeptInfoFacade.list(deptInfo);
+                Set<String> deptSetInfo = new HashSet<String>();
+                if(ListUtil.isNotEmpty(listInfo)){
+                    listInfo.forEach(basDeptInfo->{
+                        deptSetInfo.add(basDeptInfo.getDeptId());
+                    });
+                QueryWrapper<BehospitalInfo> QueryWrapper = new QueryWrapper<>();
+                QueryWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
+                QueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+                //QueryWrapper.eq("is_placefile", basDoctorInfoVO.getIsPlacefile());
+                QueryWrapper.in("beh_dept_id",deptSetInfo);
+
+                if(StringUtils.isNotEmpty(basDoctorInfoVO.getInputStr())){
+                    QueryWrapper.like("doctor_name",basDoctorInfoVO.getInputStr());
+                }
+                QueryWrapper.groupBy("doctor_name");
+                QueryWrapper.orderByAsc("doctor_name");
+                list = behospitalInfoFacade.list(QueryWrapper);
+                if(ListUtil.isNotEmpty(list)){
+                    list.forEach(behospitalInfo -> {
+                                if(behospitalInfo!= null && StringUtils.isNotEmpty(behospitalInfo.getDoctorName())){
+                                    BasDoctorInfo basDoctorInfo = new BasDoctorInfo();
+                                    basDoctorInfo.setHospitalId(behospitalInfo.getHospitalId());
+                                    basDoctorInfo.setDoctorId(behospitalInfo.getDoctorId());
+                                    basDoctorInfo.setName(behospitalInfo.getDoctorName());
+                                    doctorData.add(basDoctorInfo);
+                                }
+                            }
+                    );
+                }
+
             }
-            QueryWrapper.orderByAsc("name");
-            list = this.list(QueryWrapper);
         }
 
-        return list;
+            return doctorData;
     }
-
 }

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

@@ -1603,6 +1603,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 = sysHospitalSetFacade.getOne(new QueryWrapper<SysHospitalSet>()
                         .eq("is_deleted", IsDeleteEnum.N.getKey())
                         .eq("hospital_id", analyzeRunVO.getHospitalId())
+                        .eq("code", "score_type")
                 , false);
         if (null != sysHospitalSet && sysHospitalSet.getValue().equals("1")) {
             //百分制

+ 63 - 7
src/main/java/com/diagbot/facade/ConsoleByDeptExportFacade.java

@@ -3,12 +3,14 @@ package com.diagbot.facade;
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.diagbot.dto.*;
 import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.*;
 import com.diagbot.vo.*;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,10 +18,7 @@ import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Description: 报表导出装饰层
@@ -102,9 +101,9 @@ public class ConsoleByDeptExportFacade {
         filterPageByDeptVO.setCurrent(1L);
         filterPageByDeptVO.setSize(Long.MAX_VALUE);
         filterPageByDeptVO.setSearchCount(false);
-        IPage<DeptEntryNumDTO> page = qcresultInfoFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
+        IPage<EntryNumGroupDTO> page = qcresultInfoFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
         String fileName = "缺陷详情.xls";
-        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", DeptEntryNumDTO.class, fileName, response, 12.8f);
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", EntryNumGroupDTO.class, fileName, response, 12.8f);
     }
 
 
@@ -116,10 +115,10 @@ public class ConsoleByDeptExportFacade {
      */
     public void entryGroupExportByDeptCase(HttpServletResponse response,FilterPageByDeptVO filterPageByDeptVO) {
         filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
-        IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
         filterPageByDeptVO.setCurrent(1L);
         filterPageByDeptVO.setSize(Long.MAX_VALUE);
         filterPageByDeptVO.setSearchCount(false);
+        IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
         String fileName = "各模块缺陷详情.xls";
         ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", NumDTO.class, fileName, response, 12.8f);
     }
@@ -377,6 +376,63 @@ public class ConsoleByDeptExportFacade {
         ExcelUtils.exportExcel(records, null, "sheet1", MedicalDeptDTO.class, fileName, response, 15.8f);
     }
 
+    /**
+     * 病历质控报表-科室-导出
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public void qualityControlExportByDept(HttpServletResponse response, BehospitalPageVO behospitalPageVO) {
+        behospitalPageVO.setCurrent(1L);
+        behospitalPageVO.setSize(Long.MAX_VALUE);
+        behospitalPageVO.setSearchCount(false);
+        Date startDate = behospitalPageVO.getLeaveHosDateStart();
+        Date endDate = behospitalPageVO.getLeaveHosDateEnd();
+      //  orderMethod(behospitalPageVO);
+        //时间间隔30天
+        long interval = 30 * 24l * 60l * 60l * 1000l;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于30天");
+        }
+        String  fileName = "病历质控报表.xls";
+        IPage<QualityControlDeptDTO> records = consoleByDeptFacade.qualityControlByDept(behospitalPageVO);
+        ExcelUtils.exportExcel(records.getRecords(), "病历质控报表", "sheet1", QualityControlDeptDTO.class, fileName, response, 26.8f);
+    }
+
+    static void orderMethod(BehospitalPageVO behospitalPageVO){
+        List orders = behospitalPageVO.getOrders();
+        Boolean flag = false;
+        List<OrderItem> itemList = new ArrayList<>();
+        List<OrderItem> targetItemList = new ArrayList<>();
+        for (Object order : orders) {
+            ObjectMapper objectMapper = new ObjectMapper();
+            OrderItem orderName = objectMapper.convertValue(order, OrderItem.class);
+            itemList.add(orderName);
+            if(!(orderName.getColumn().equals("deptName")||orderName.getColumn().equals("doctorName"))){
+                flag = true;
+            }
+        }
+        //科室、医生作为第一升序排列,传入排序随后 配合excel注解属性mergeVertical处理科室合并
+            OrderItem orderDept = new OrderItem();
+            orderDept.setAsc(true);
+            orderDept.setColumn("deptName");
+            targetItemList.add(orderDept);
+            OrderItem orderDoctor = new OrderItem();
+            orderDoctor.setAsc(true);
+            orderDoctor.setColumn("doctorName");
+            targetItemList.add(orderDoctor);
+        if(flag){
+            if(itemList.size()==1){
+                targetItemList.add(itemList.get(0));
+            }
+        }
+        behospitalPageVO.setOrders(targetItemList);
+
+    };
+
 
 
     /**

+ 502 - 4
src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java

@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.*;
 import com.diagbot.entity.QcCasesEntry;
 import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.util.*;
 import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -415,7 +418,7 @@ public class ConsoleByDeptFacade {
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptEntryNumDTO> entryCountGroupByEntryAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
+    public IPage<EntryNumGroupDTO> entryCountGroupByEntryAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
         if (StringUtil.isBlank(filterPageByDeptVO.getDeptName())) {
             List<DeptBaseDTO> deptList = this.getDept();
             //默认取第一个科室
@@ -427,7 +430,7 @@ public class ConsoleByDeptFacade {
             filterPageByDeptVO.setDoctorName("");
         }
         filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
-        IPage<DeptEntryNumDTO> page = qcresultInfoFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
+        IPage<EntryNumGroupDTO> page = qcresultInfoFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
         return page;
     }
 
@@ -485,9 +488,119 @@ public class ConsoleByDeptFacade {
         }
         filterFacade.filterOrderVOSame(filterOrderVO);
         List<LevelStsByDeptDTO> records = behospitalInfoFacade.levelStatisticsByDept(filterOrderVO);
+        if(ListUtil.isNotEmpty(records)){
+            for (LevelStsByDeptDTO record : records) {
+                BigDecimalMethod(record);
+            }
+        }
         return records;
     }
 
+    public void BigDecimalMethod(LevelStsByDeptDTO record){
+        BigDecimal entrySameBigDecimal = getSubtract(new BigDecimal(record.getEntryNum()), new BigDecimal(record.getSameNum() == null? 0:record.getSameNum()));
+
+        if(entrySameBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setEntrySameNum(1);
+        }else if(entrySameBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setEntrySameNum(0);
+        }else{
+            record.setEntrySameNum(-1);
+        }
+
+        BigDecimal sameMrNumBigDecimal = getSubtract(new BigDecimal(record.getMrNum()), new BigDecimal(record.getSameMrNum()  == null? 0:record.getSameMrNum()));
+        if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setMrSameNum(1);
+        }else if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setMrSameNum(0);
+        }else{
+            record.setMrSameNum(-1);
+        }
+
+        BigDecimal sameAvgValueDecimal = getSubtract(new BigDecimal(record.getAverageValue()), new BigDecimal(record.getSameAvgValue() == null? 0:record.getSameAvgValue()));
+        if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setAvSameValue(1);
+        }else if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setAvSameValue(0);
+        }else{
+            record.setAvSameValue(-1);
+        }
+
+        BigDecimal SameFirstLevelBigDecimal = getSubtract(new BigDecimal(record.getFirstLevelNum()), new BigDecimal(record.getSameFirstLevelNum() == null? 0:record.getSameFirstLevelNum()));
+        if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setFirSameLevelNum(1);
+        }else if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setFirSameLevelNum(0);
+        }else{
+            record.setFirSameLevelNum(-1);
+        }
+
+        BigDecimal SameSecondLevelBigDecimal = getSubtract(new BigDecimal(record.getSecondLevelNum()), new BigDecimal(record.getSameSecondLevelNum() == null? 0:record.getSameSecondLevelNum()));
+        if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setSecSameLevelNum(1);
+        }else if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setSecSameLevelNum(0);
+        }else{
+            record.setSecSameLevelNum(-1);
+        }
+
+        BigDecimal SameThirdLevelBigDecimal = getSubtract(new BigDecimal(record.getThirdLevelNum()), new BigDecimal(record.getSameThirdLevelNum() == null? 0:record.getSameThirdLevelNum()));
+        if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setThiSameLevelNum(1);
+        }else if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setThiSameLevelNum(0);
+        }else{
+            record.setThiSameLevelNum(-1);
+        }
+
+        BigDecimal SameFirstLevelPeDecimal = getSubtract(new BigDecimal(record.getFirstLevelPercent()), new BigDecimal(record.getSameFirstLevelPercent() == null? 0:record.getSameFirstLevelPercent()));
+        if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setFirSameLevelPercent(1);
+        }else if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setFirSameLevelPercent(0);
+        }else{
+            record.setFirSameLevelPercent(-1);
+        }
+
+        BigDecimal SameSecondLevelPeDecimal = getSubtract(new BigDecimal(record.getSecondLevelPercent()), new BigDecimal(record.getSameSecondLevelPercent() == null? 0:record.getSameSecondLevelPercent()));
+        if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setSecSameLevelPercent(1);
+        }else if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setSecSameLevelPercent(0);
+        }else{
+            record.setSecSameLevelPercent(-1);
+        }
+
+        BigDecimal SameThirdLevelPeDecimal = getSubtract(new BigDecimal(record.getThirdLevelPercent()), new BigDecimal(record.getSameThirdLevelPercent() == null? 0:record.getSameThirdLevelPercent()));
+        if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setThiSameLevelPercent(1);
+        }else if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setThiSameLevelPercent(0);
+        }else{
+            record.setThiSameLevelPercent(-1);
+        }
+    };
+
+
+    /**
+     * 差值计算
+     *
+     * @param bigDecimalOne
+     * @param bigDecimalTwo
+     * @return
+     */
+    private BigDecimal getSubtract(BigDecimal bigDecimalOne, BigDecimal bigDecimalTwo) {
+        BigDecimal newBigDecimal = new BigDecimal(0);
+        if (null == bigDecimalOne && null != bigDecimalTwo) {
+            newBigDecimal = newBigDecimal.subtract(bigDecimalTwo);
+        } else if (null != bigDecimalOne && null == bigDecimalTwo) {
+            newBigDecimal = bigDecimalOne.subtract(newBigDecimal);
+        } else if (null != bigDecimalOne && null != bigDecimalTwo) {
+            newBigDecimal = bigDecimalOne.subtract(bigDecimalTwo);
+        }
+        return newBigDecimal;
+    }
+
+
     /**
      * 病案首页合格率占比
      *
@@ -803,7 +916,8 @@ public class ConsoleByDeptFacade {
                 ReBeHosDetailByDeptDTO lastDetailRecord = new ReBeHosDetailByDeptDTO();
                 lastDetailRecord.setName(record.getName());
                 lastDetailRecord.setBehDeptId(record.getLastBehDeptId());
-                lastDetailRecord.setDoctorName(record.getDoctorName());
+                lastDetailRecord.setBehDeptName(record.getLastBehDeptName());
+                lastDetailRecord.setDoctorName(record.getLastDoctorName());
                 lastDetailRecord.setBehospitalCode(record.getLastBehospitalCode());
                 lastDetailRecord.setBehospitalDate(record.getLastBehospitalDate());
                 lastDetailRecord.setLeaveHospitalDate(record.getLastLeaveHospitalDate());
@@ -937,10 +1051,55 @@ public class ConsoleByDeptFacade {
                 casesEntryIds.add(Long.valueOf(keyValue[0]));
             }
         }
-        IPage<MedicalCheckDTO> medicalCheck = behospitalInfoFacade.getMedicalCheck(filterVO,casesEntryIds);
+        IPage<MedicalCheckDTO> medicalCheck = behospitalInfoFacade.getMedicalChecks(filterVO,casesEntryIds);
         return medicalCheck;
     }
 
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDeptDTO> qualityControlByDept(@Param("filterVO")  BehospitalPageVO behospitalPageVO) {
+        behospitalPageSet(behospitalPageVO);
+        IPage<QualityControlDeptDTO> records = behospitalInfoFacade.qualityControlByDept(behospitalPageVO);
+        List<QualityControlDeptDTO> qualityControlDTOs = records.getRecords();
+        CaseScoreVO caseScoreVO = new CaseScoreVO();
+        BeanUtil.copyProperties(behospitalPageVO,caseScoreVO);
+        List<CaseScoreDTO>caseScoreDTOS= behospitalInfoFacade.getQualityCaseSorce(caseScoreVO);
+        if(ListUtil.isNotEmpty(qualityControlDTOs)){
+            qualityControlDTOs.forEach(qualityControlDTO->{
+                if(ListUtil.isNotEmpty(caseScoreDTOS)){
+                    AlgorithmVO algorithmVO = new AlgorithmVO();
+                    BeanUtil.copyProperties(behospitalPageVO,algorithmVO);
+                    algorithmVO.setType(0);
+                    List<QcResultAlgVO> qcResultAlgVOList = new ArrayList<QcResultAlgVO>();
+                    for (CaseScoreDTO caseScoreDTO : caseScoreDTOS) {
+                        if (StringUtils.isNotEmpty(qualityControlDTO.getBehospitalCode())&&
+                                StringUtils.isNotEmpty(caseScoreDTO.getBehospitalCode())&&
+                                qualityControlDTO.getBehospitalCode().equals(caseScoreDTO.getBehospitalCode())) {
+                            QcResultAlgVO qcResultAlgVO = new QcResultAlgVO();
+                            BeanUtil.copyProperties(caseScoreDTO,qcResultAlgVO);
+                            qcResultAlgVO.setIsReject(Integer.valueOf(caseScoreDTO.getIsReject()));
+                            qcResultAlgVO.setScore(new BigDecimal(caseScoreDTO.getScore()));
+                            qcResultAlgVO.setCasesScore(new BigDecimal(caseScoreDTO.getCasesScore()));
+                            qcResultAlgVOList.add(qcResultAlgVO);
+                        }
+                    }
+                    algorithmVO.setType(0);
+                    algorithmVO.setQcResultAlgVOList(qcResultAlgVOList);
+                    getScoreForCx(algorithmVO,qualityControlDTO);
+                }
+                if(qualityControlDTO.getLevel().equals("未评分")){
+                    QualityControlNullDTO qualityControlNullDTO = new QualityControlNullDTO();
+                    BeanUtil.copyProperties(qualityControlNullDTO,qualityControlDTO);
+                }
+            });
+        };
+        return records;
+    }
+
 
     /**
      * 未整改病历统计-科室
@@ -1171,6 +1330,345 @@ public class ConsoleByDeptFacade {
         return unModifyMRDTO;
     }
 
+    private void behospitalPageSet(BehospitalPageVO behospitalPageVO) {
+        //入参验证
+        //入院时间
+        if (null != behospitalPageVO && null != behospitalPageVO.getBehosDateStart()) {
+            behospitalPageVO.setBehosDateStart(DateUtil.getFirstTimeOfDay(behospitalPageVO.getBehosDateStart()));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getBehosDateEnd()) {
+            behospitalPageVO.setBehosDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(behospitalPageVO.getBehosDateEnd(), 1)));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getBehosDateStart() && null != behospitalPageVO.getBehosDateEnd()) {
+            if (DateUtil.after(behospitalPageVO.getBehosDateStart(), behospitalPageVO.getBehosDateEnd())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "入院时间的开始时间必须小于结束时间!");
+            }
+        }
+        //出院时间
+        if (null != behospitalPageVO && null != behospitalPageVO.getLeaveHosDateStart()) {
+            behospitalPageVO.setLeaveHosDateStart(DateUtil.getFirstTimeOfDay(behospitalPageVO.getLeaveHosDateStart()));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getLeaveHosDateEnd()) {
+            behospitalPageVO.setLeaveHosDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(behospitalPageVO.getLeaveHosDateEnd(), 1)));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getLeaveHosDateStart() && null != behospitalPageVO.getLeaveHosDateEnd()) {
+            if (DateUtil.after(behospitalPageVO.getLeaveHosDateStart(), behospitalPageVO.getLeaveHosDateEnd())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "出院时间的开始时间必须小于结束时间!");
+            }
+        }
+        behospitalPageVO.setHospitalId(Long.parseLong(SysUserUtils.getCurrentHospitalID()));
+        behospitalPageVO.setUserId(Long.valueOf(SysUserUtils.getCurrentPrincipleID()));
+    }
+
+    /**
+     * 评结果分数(长兴)
+     *
+     * @param algorithmVO 操作条目的所有信息
+     * @return 评结果分数
+     */
+    private void getScoreForCx(AlgorithmVO algorithmVO,QualityControlDeptDTO qualityControlDTO) {
+        List<QcResultAlgVO> qcResultAlgHomePage = new ArrayList<>();
+        List<QcResultAlgVO> qcResultAlgHomePageExt = new ArrayList<>();
+        for (QcResultAlgVO qcResultAlgVO : algorithmVO.getQcResultAlgVOList()) {
+            //首页的情况
+            if (qcResultAlgVO.getCasesId().equals(243L)) {
+                qcResultAlgHomePage.add(qcResultAlgVO);
+            } else {
+                //非首页
+                qcResultAlgHomePageExt.add(qcResultAlgVO);
+            }
+        }
+
+        //病案首页
+        AlgorithmVO homePage = new AlgorithmVO();
+        BeanUtil.copyProperties(algorithmVO, homePage);
+        homePage.setQcResultAlgVOList(qcResultAlgHomePage);
+        homePage.setIsHomePage(true);
+        cal(homePage, qualityControlDTO);
+
+        //病案首页以外
+        AlgorithmVO homePageExt = new AlgorithmVO();
+        BeanUtil.copyProperties(algorithmVO, homePageExt);
+        homePageExt.setQcResultAlgVOList(qcResultAlgHomePageExt);
+        cal(homePageExt,qualityControlDTO);
+    }
+
+    /**
+     * 计算分数
+     *
+     * @param algorithmVO 操作条目的所有信息
+     * @return 评分分数
+     */
+    private void cal(AlgorithmVO algorithmVO ,QualityControlDeptDTO qualityControlDTO) {
+
+        //模块总分
+        Map<Long, BigDecimal> casesMap = new HashMap<>();
+        //单票否决计分
+        Map<Long, BigDecimal> rejectScoreMap = new HashMap<>();
+        //模块计分
+        Map<Long, BigDecimal> casesScoreMap = new HashMap<>();
+        //模块缺陷统计
+        Map<Long, String> casesNameMap = new HashMap<>();
+        //扣分统计
+        Map<Long, BigDecimal> scoreMap = new HashMap<>();
+
+        List<QcResultAlgVO> qcResultAlgVOList = algorithmVO.getQcResultAlgVOList();
+        if (ListUtil.isNotEmpty(qcResultAlgVOList)) {
+            for (QcResultAlgVO qcResultAlgVO : qcResultAlgVOList) {
+                if (!casesMap.containsKey(qcResultAlgVO.getCasesId())) {
+                    //模块总分
+                    casesMap.put(qcResultAlgVO.getCasesId(), qcResultAlgVO.getCasesScore());
+                }
+                if (!casesScoreMap.containsKey(qcResultAlgVO.getCasesId())) {
+                    casesScoreMap.put(qcResultAlgVO.getCasesId(), BigDecimal.ZERO);
+                    rejectScoreMap.put(qcResultAlgVO.getCasesId(), BigDecimal.ZERO);
+                    casesNameMap.put(qcResultAlgVO.getCasesId(),"");
+                }
+                //单票否决计分
+                if (qcResultAlgVO.getIsReject().equals(1)) {
+                    if (rejectScoreMap.containsKey(qcResultAlgVO.getCasesId())) {
+                        BigDecimal casesScore = rejectScoreMap.get(qcResultAlgVO.getCasesId());
+                        casesScore = casesScore.add(qcResultAlgVO.getScore());
+                        rejectScoreMap.put(qcResultAlgVO.getCasesId(), casesScore);
+                    }
+                } else {
+                    //非单票否决计分
+                    if (casesScoreMap.containsKey(qcResultAlgVO.getCasesId())) {
+                        BigDecimal casesScore = casesScoreMap.get(qcResultAlgVO.getCasesId());
+                        casesScore = casesScore.add(qcResultAlgVO.getScore());
+                        casesScoreMap.put(qcResultAlgVO.getCasesId(), casesScore);
+                    }
+                }
+                String casesName = casesNameMap.get(qcResultAlgVO.getCasesId());
+                if(StringUtils.isEmpty(casesName)){
+                    casesName =  casesName + qcResultAlgVO.getMsg();
+                }else{
+                    casesName =  casesName + ";" + qcResultAlgVO.getMsg();
+                }
+                casesNameMap.put(qcResultAlgVO.getCasesId(),casesName);
+            }
+
+
+            //模块计分
+            for (Map.Entry<Long, BigDecimal> casesScore : casesScoreMap.entrySet()) {
+                BigDecimal allSccore = casesMap.get(casesScore.getKey());
+                if (BigDecimalUtil.le(allSccore, casesScore.getValue())) {
+                    //模块标准分小于等于模块减分总和就用模块标准分
+                    allSccore = allSccore.add(rejectScoreMap.get(casesScore.getKey()));
+                } else {
+                    //模块标准分大于模块减分总和就用模块减分总和
+                    allSccore =casesScore.getValue().add(rejectScoreMap.get(casesScore.getKey()));
+
+                }
+                if (BigDecimalUtil.lt(allSccore, BigDecimal.ZERO)) {
+                    allSccore = BigDecimal.ZERO;
+                }
+                scoreMap.put(casesScore.getKey(),allSccore);
+            }
+
+
+            DecimalFormat df=new DecimalFormat("0.0");
+
+            if(StringUtils.isNotEmpty(casesNameMap.get(237L))){
+                qualityControlDTO.setAdmissionNote(casesNameMap.get(237L));
+            }
+            if( scoreMap.get(237L) != null){
+                qualityControlDTO.setAdmissionNoteScore( Double.valueOf(df.format(scoreMap.get(237L))));
+            }
+
+
+
+            if(StringUtils.isNotEmpty(casesNameMap.get(238L))){
+                qualityControlDTO.setFirstCourseNote(casesNameMap.get(238L));
+            }
+            if( scoreMap.get(238L) != null){
+                qualityControlDTO.setFirstCourseNoteScore( Double.valueOf(df.format(scoreMap.get(238L))));
+            }
+
+
+
+            if(StringUtils.isNotEmpty(casesNameMap.get(242L))){
+                qualityControlDTO.setDischargeNote(casesNameMap.get(242L));
+            }
+            if( scoreMap.get(242L) != null){
+                qualityControlDTO.setDischargeNoteScore( Double.valueOf(df.format(scoreMap.get(242L))));
+            }
+
+
 
+            if(StringUtils.isNotEmpty(casesNameMap.get(243L))){
+                qualityControlDTO.setMedHomePage(casesNameMap.get(243L));
+            }
+            if( scoreMap.get(243L) != null){
+                qualityControlDTO.setMedHomePageScore( Double.valueOf(df.format(scoreMap.get(243L))));
+            }
+
+
+
+            if(StringUtils.isNotEmpty(casesNameMap.get(280L))){
+                qualityControlDTO.setDocAdviceNote(casesNameMap.get(280L));
+            }
+            if( scoreMap.get(280L) != null){
+                qualityControlDTO.setDocAdviceNoteScore( Double.valueOf(df.format(scoreMap.get(280L))));
+            }
+
+
+            String operationInfo = "";
+            if(StringUtils.isNotEmpty(casesNameMap.get(248L))){
+                operationInfo = "围手术期病历讨论:"+casesNameMap.get(248L);
+            }
+            if(StringUtils.isNotEmpty(casesNameMap.get(249L))){
+                operationInfo = operationInfo+";"+"术前讨论制度:"+casesNameMap.get(249L);
+            }
+            if(operationInfo.contains(";")){
+                String[] split = operationInfo.split(";");
+                if(StringUtils.isEmpty(split[0])){
+                    operationInfo = split[1];
+                }
+            }
+
+            qualityControlDTO.setOperationInfo(StringUtils.isEmpty(operationInfo)==true?"无缺陷":operationInfo);
+
+            Double score_248 = 0d;
+            Double score_11 = 0d;
+            Double score_249 = 0d;
+            if( scoreMap.get(248L) != null){
+                score_248 = Double.valueOf(df.format(scoreMap.get(248L)));
+            }
+            if( scoreMap.get(11L) != null){
+                score_11 =  Double.valueOf(df.format(scoreMap.get(11L)));
+            }
+            if( scoreMap.get(249L) != null){
+                score_249 = Double.valueOf(df.format(scoreMap.get(249L)));
+            }
+            qualityControlDTO.setOperationInfoScore(score_248+score_11+score_249);
+        }
+
+        String courseRecord = "";
+        if(StringUtils.isNotEmpty(casesNameMap.get(239L))){
+            courseRecord = "死亡病例讨论制度:"+casesNameMap.get(239L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(240L))){
+            courseRecord = courseRecord+";"+"疑难病例讨论制度:"+casesNameMap.get(240L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(241L))){
+            courseRecord =courseRecord+";"+ "三级查房制度:"+casesNameMap.get(241L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(244L))){
+            courseRecord =courseRecord+";"+ "会诊制度:"+casesNameMap.get(244L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(245L))){
+            courseRecord =courseRecord+";"+ "分级护理制度:"+casesNameMap.get(245L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(246L))){
+            courseRecord = courseRecord+";"+"值班及交接班制度:"+casesNameMap.get(246L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(247L))){
+            courseRecord = courseRecord+";"+"临床用血审核制度:"+casesNameMap.get(247L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(250L))){
+            courseRecord =courseRecord+";"+ "死亡记录:"+casesNameMap.get(250L);
+        }
+        if(courseRecord.contains(";")) {
+            String[] courseRecordSplit = courseRecord.split(";");
+            if (StringUtils.isEmpty(courseRecordSplit[0])) {
+                courseRecord = courseRecordSplit[1];
+            }
+        }
+        qualityControlDTO.setCourseRecord(StringUtils.isEmpty(courseRecord)==true?"无缺陷":courseRecord);
+
+
+        Double score_239 = 0d;
+        Double score_240 = 0d;
+        Double score_241 = 0d;
+        Double score_244 = 0d;
+        Double score_245 = 0d;
+        Double score_246 = 0d;
+        Double score_247 = 0d;
+        Double score_250 = 0d;
+        DecimalFormat df=new DecimalFormat("0.0");
+        if( scoreMap.get(239L) != null){
+            score_239 =  Double.valueOf(df.format(scoreMap.get(239L)));
+        }
+        if( scoreMap.get(240L) != null){
+            score_240 =  Double.valueOf(df.format(scoreMap.get(240L)));
+        }
+        if( scoreMap.get(241L) != null){
+            score_241 =  Double.valueOf(df.format(scoreMap.get(241L)));
+        }
+        if( scoreMap.get(244L) != null){
+            score_244 =  Double.valueOf(df.format(scoreMap.get(244L)));
+        }
+        if( scoreMap.get(245L) != null){
+            score_245 =  Double.valueOf(df.format(scoreMap.get(245L)));
+        }
+        if( scoreMap.get(246L) != null){
+            score_246 =  Double.valueOf(df.format(scoreMap.get(246L)));
+        }
+        if( scoreMap.get(247L) != null){
+            score_247 =  Double.valueOf(df.format(scoreMap.get(247L)));
+        }
+        if( scoreMap.get(250L) != null){
+            score_250 =  Double.valueOf(df.format(scoreMap.get(250L)));
+
+        }
+        qualityControlDTO.setCourseRecordScore(score_239+score_240+score_241+score_244+score_245+score_246+score_247+score_250);
+                  /*  qualityControlDTO.setCourseRecord(name_239+";"+name_240
+                                    +";"+name_241+";"+name_244+";"+name_245
+                                    +";"+name_246+";"+name_247+";"+name_250);
+                    qualityControlDTO.setCourseRecordScore(score_239+score_240+score_241+score_244+score_245+score_246
+                            +score_247+score_250);*/
+
+
+
+
+        Double score_262 = 0d;
+        Double score_281 = 0d;
+        Double score_282 = 0d;
+        Double score_283 = 0d;
+        Double score_284 = 0d;
+        if( scoreMap.get(262L) != null){
+            score_262 =  Double.valueOf(df.format(scoreMap.get(262L)));
+        }
+        if( scoreMap.get(281L) != null){
+            score_281 =  Double.valueOf(df.format(scoreMap.get(281L)));
+        }
+        if( scoreMap.get(282L) != null){
+            score_282 =  Double.valueOf(df.format(scoreMap.get(282L)));
+        }
+        if( scoreMap.get(283L) != null){
+            score_283 =  Double.valueOf(df.format(scoreMap.get(283L)));
+        }
+        if( scoreMap.get(284L) != null){
+            score_284 =  Double.valueOf(df.format(scoreMap.get(284L)));
+
+        }
+
+        String otherCase = "";
+        if(StringUtils.isNotEmpty(casesNameMap.get(262L))){
+            otherCase = "危急值报告制度:"+casesNameMap.get(262L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(281L))){
+            otherCase = otherCase +";"+"危急值报告制度:"+casesNameMap.get(281L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(282L))){
+            otherCase = otherCase +";"+ "危急值报告制度:"+casesNameMap.get(282L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(283L))){
+            otherCase = otherCase +";"+ "危急值报告制度:"+casesNameMap.get(283L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(284L))){
+            otherCase = otherCase +";"+ "危急值报告制度:"+casesNameMap.get(284L);
+        }
+        if(otherCase.contains(";")) {
+            String[] otherCaseSplit = otherCase.split(";");
+            if(StringUtils.isEmpty(otherCaseSplit[0])){
+                otherCase = otherCaseSplit[1];
+            }
+        }
+        qualityControlDTO.setOtherCase(StringUtils.isEmpty(otherCase)==true?"无缺陷":otherCase);
+        qualityControlDTO.setOtherCaseScore(score_262+score_281+score_282+score_283+score_284);
+
+    }
 
 }

+ 66 - 10
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -1,27 +1,25 @@
 package com.diagbot.facade;
 
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.diagbot.dto.*;
 import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.ExcelUtils;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.SysUserUtils;
+import com.diagbot.util.*;
 import com.diagbot.vo.*;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
+import com.google.gson.JsonObject;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Description: 报表导出装饰层
@@ -230,7 +228,7 @@ public class ConsoleExportFacade {
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔90天
-        long interval = 90 * 24l * 60l * 60l * 100l;
+        long interval = 90 * 24l * 60l * 60l * 1000l;
         if (endDate.getTime() < startDate.getTime()) {
             throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
         }
@@ -597,4 +595,62 @@ public class ConsoleExportFacade {
             ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
         }
     }
+
+
+    /**
+     * 病历质控报表分页导出
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public void qualityControlExport(HttpServletResponse response, BehospitalPageVO behospitalPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        behospitalPageVO.setHospitalId(Long.valueOf(hospitalId));
+
+    Date startDate = behospitalPageVO.getLeaveHosDateStart();
+    Date endDate = behospitalPageVO.getLeaveHosDateEnd();
+    //时间间隔30天
+    long interval = 30 * 24l * 60l * 60l * 1000l;
+        if (endDate.getTime() < startDate.getTime()) {
+        throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+    }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+        throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于30天");
+    }
+
+        behospitalPageVO.setCurrent(1L);
+        behospitalPageVO.setSize(Long.MAX_VALUE);
+        behospitalPageVO.setSearchCount(false);
+      //  orderMethod(behospitalPageVO);
+
+        IPage<QualityControlDTO> page = consoleFacade.getQualityControlExport(behospitalPageVO);
+        List<QualityControlDTO> records = page.getRecords();
+
+        String fileName = "病历质控报表详情页.xls";
+        ExcelUtils.exportExcel(records, "病历质控报表", "sheet1", QualityControlDTO.class, fileName, response, 26.8f);
+    }
+
+   static void orderMethod(BehospitalPageVO behospitalPageVO){
+       List orders = behospitalPageVO.getOrders();
+       Boolean flag= false;
+       List<OrderItem> itemList = new ArrayList<>();
+       for (Object order : orders) {
+           ObjectMapper objectMapper = new ObjectMapper();
+           OrderItem orderName = objectMapper.convertValue(order, OrderItem.class);
+           itemList.add(orderName);
+           if(!orderName.getColumn().equals("deptName")){
+               flag = true;
+           }
+       }
+       //科室作为第一升序排列,传入排序随后 配合excel注解属性mergeVertical处理科室合并
+       if(flag){
+           OrderItem orderItem = new OrderItem();
+           orderItem.setAsc(true);
+           orderItem.setColumn("deptName");
+           itemList.add(orderItem);
+           Collections.reverse(itemList);
+           behospitalPageVO.setOrders(itemList);
+       }
+
+   };
 }

+ 441 - 1
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -9,12 +9,14 @@ import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.*;
 import com.diagbot.entity.QcCasesEntry;
 import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.*;
 import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -1245,6 +1247,133 @@ public class ConsoleFacade {
         return records;
     }
 
+    /**
+     * 病历质控报表
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO) {
+        behospitalPageSet(behospitalPageVO);
+        IPage<QualityControlDTO> records = behospitalInfoFacade.getQualityControl(behospitalPageVO);
+        List<QualityControlDTO> qualityControlDTOs = records.getRecords();
+        CaseScoreVO caseScoreVO = new CaseScoreVO();
+        BeanUtil.copyProperties(behospitalPageVO,caseScoreVO);
+        List<CaseScoreDTO>caseScoreDTOS= behospitalInfoFacade.getQualityCaseSorce(caseScoreVO);
+        if(ListUtil.isNotEmpty(qualityControlDTOs)){
+        qualityControlDTOs.forEach(qualityControlDTO->{
+            if(ListUtil.isNotEmpty(caseScoreDTOS)){
+                AlgorithmVO algorithmVO = new AlgorithmVO();
+              BeanUtil.copyProperties(behospitalPageVO,algorithmVO);
+                algorithmVO.setType(0);
+                List<QcResultAlgVO> qcResultAlgVOList = new ArrayList<QcResultAlgVO>();
+            for (CaseScoreDTO caseScoreDTO : caseScoreDTOS) {
+                        if (StringUtils.isNotEmpty(qualityControlDTO.getBehospitalCode())&&
+                                StringUtils.isNotEmpty(caseScoreDTO.getBehospitalCode())&&
+                                qualityControlDTO.getBehospitalCode().equals(caseScoreDTO.getBehospitalCode())) {
+                            QcResultAlgVO qcResultAlgVO = new QcResultAlgVO();
+                            BeanUtil.copyProperties(caseScoreDTO,qcResultAlgVO);
+                            qcResultAlgVO.setIsReject(Integer.valueOf(caseScoreDTO.getIsReject()));
+                            qcResultAlgVO.setScore(new BigDecimal(caseScoreDTO.getScore()));
+                            qcResultAlgVO.setCasesScore(new BigDecimal(caseScoreDTO.getCasesScore()));
+                            qcResultAlgVOList.add(qcResultAlgVO);
+                        }
+            }
+                algorithmVO.setType(0);
+                algorithmVO.setQcResultAlgVOList(qcResultAlgVOList);
+                 getScoreForCx(algorithmVO,qualityControlDTO);
+            }
+            if(qualityControlDTO.getLevel().equals("未评分")){
+                QualityControlNullDTO qualityControlNullDTO = new QualityControlNullDTO();
+                BeanUtil.copyProperties(qualityControlNullDTO,qualityControlDTO);
+            }
+        });
+        };
+        return records;
+    }
+
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDTO> getQualityControlExport(BehospitalPageVO behospitalPageVO) {
+        behospitalPageSet(behospitalPageVO);
+        IPage<QualityControlDTO> records = behospitalInfoFacade.getQualityControl(behospitalPageVO);
+        List<QualityControlDTO> qualityControlDTOs = records.getRecords();
+        CaseScoreVO caseScoreVO = new CaseScoreVO();
+        BeanUtil.copyProperties(behospitalPageVO,caseScoreVO);
+        List<CaseScoreDTO>caseScoreDTOS= behospitalInfoFacade.getQualityCaseSorce(caseScoreVO);
+        if(ListUtil.isNotEmpty(qualityControlDTOs)){
+            qualityControlDTOs.forEach(qualityControlDTO->{
+                if(ListUtil.isNotEmpty(caseScoreDTOS)){
+                    AlgorithmVO algorithmVO = new AlgorithmVO();
+                    BeanUtil.copyProperties(behospitalPageVO,algorithmVO);
+                    algorithmVO.setType(0);
+                    List<QcResultAlgVO> qcResultAlgVOList = new ArrayList<QcResultAlgVO>();
+                    for (CaseScoreDTO caseScoreDTO : caseScoreDTOS) {
+                        if (StringUtils.isNotEmpty(qualityControlDTO.getBehospitalCode())&&
+                                StringUtils.isNotEmpty(caseScoreDTO.getBehospitalCode())&&
+                                qualityControlDTO.getBehospitalCode().equals(caseScoreDTO.getBehospitalCode())) {
+                            QcResultAlgVO qcResultAlgVO = new QcResultAlgVO();
+                            BeanUtil.copyProperties(caseScoreDTO,qcResultAlgVO);
+                            qcResultAlgVO.setIsReject(Integer.valueOf(caseScoreDTO.getIsReject()));
+                            qcResultAlgVO.setScore(new BigDecimal(caseScoreDTO.getScore()));
+                            qcResultAlgVO.setCasesScore(new BigDecimal(caseScoreDTO.getCasesScore()));
+                            qcResultAlgVOList.add(qcResultAlgVO);
+                        }
+                    }
+                    algorithmVO.setType(0);
+                    algorithmVO.setQcResultAlgVOList(qcResultAlgVOList);
+                    getScoreForCx(algorithmVO,qualityControlDTO);
+                }
+                if(qualityControlDTO.getLevel().equals("未评分")){
+                    QualityControlNullDTO qualityControlNullDTO = new QualityControlNullDTO();
+                    BeanUtil.copyProperties(qualityControlNullDTO,qualityControlDTO);
+                }
+            });
+        };
+        return records;
+    }
+    private void behospitalPageSet(BehospitalPageVO behospitalPageVO) {
+        //入参验证
+        //入院时间
+        if (null != behospitalPageVO && null != behospitalPageVO.getBehosDateStart()) {
+            behospitalPageVO.setBehosDateStart(DateUtil.getFirstTimeOfDay(behospitalPageVO.getBehosDateStart()));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getBehosDateEnd()) {
+            behospitalPageVO.setBehosDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(behospitalPageVO.getBehosDateEnd(), 1)));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getBehosDateStart() && null != behospitalPageVO.getBehosDateEnd()) {
+            if (DateUtil.after(behospitalPageVO.getBehosDateStart(), behospitalPageVO.getBehosDateEnd())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "入院时间的开始时间必须小于结束时间!");
+            }
+        }
+        //出院时间
+        if (null != behospitalPageVO && null != behospitalPageVO.getLeaveHosDateStart()) {
+            behospitalPageVO.setLeaveHosDateStart(DateUtil.getFirstTimeOfDay(behospitalPageVO.getLeaveHosDateStart()));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getLeaveHosDateEnd()) {
+            behospitalPageVO.setLeaveHosDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(behospitalPageVO.getLeaveHosDateEnd(), 1)));
+        }
+        if (null != behospitalPageVO && null != behospitalPageVO.getLeaveHosDateStart() && null != behospitalPageVO.getLeaveHosDateEnd()) {
+            if (DateUtil.after(behospitalPageVO.getLeaveHosDateStart(), behospitalPageVO.getLeaveHosDateEnd())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "出院时间的开始时间必须小于结束时间!");
+            }
+        }
+        behospitalPageVO.setHospitalId(Long.parseLong(SysUserUtils.getCurrentHospitalID()));
+//        behospitalPageVO.setIsPlacefile("1");
+//        if (null != behospitalPageVO.getStatisticsType()
+//                && null == behospitalPageVO.getLeaveHosDateStart()
+//                && null == behospitalPageVO.getLeaveHosDateEnd()) {
+//            String startDate = filterFacade.getStartDateStr(behospitalPageVO.getStatisticsType(), null);
+//            String endDate = filterFacade.getEndDateStr(behospitalPageVO.getStatisticsType(), null);
+//            behospitalPageVO.setLeaveHosDateStart(DateUtil.parseDate(startDate));
+//            behospitalPageVO.setLeaveHosDateEnd(DateUtil.parseDate(endDate));
+//        }
+    }
+
     /**
      * 病案首页合格率占比
      *
@@ -1972,7 +2101,7 @@ public class ConsoleFacade {
                 ReBeHosDetailDTO lastDetailRecord = new ReBeHosDetailDTO();
                 lastDetailRecord.setName(record.getName());
                 lastDetailRecord.setBehDeptId(record.getLastBehDeptId());
-                lastDetailRecord.setBehDeptName(record.getBehDeptName());
+                lastDetailRecord.setBehDeptName(record.getLastBehDeptName());
                 lastDetailRecord.setBehospitalCode(record.getLastBehospitalCode());
                 lastDetailRecord.setBehospitalDate(record.getLastBehospitalDate());
                 lastDetailRecord.setLeaveHospitalDate(record.getLastLeaveHospitalDate());
@@ -2175,5 +2304,316 @@ public class ConsoleFacade {
 
         return columns;
     }
+
+    /**
+     * 评结果分数(长兴)
+     *
+     * @param algorithmVO 操作条目的所有信息
+     * @return 评结果分数
+     */
+    private void getScoreForCx(AlgorithmVO algorithmVO,QualityControlDTO qualityControlDTO) {
+        List<QcResultAlgVO> qcResultAlgHomePage = new ArrayList<>();
+        List<QcResultAlgVO> qcResultAlgHomePageExt = new ArrayList<>();
+        for (QcResultAlgVO qcResultAlgVO : algorithmVO.getQcResultAlgVOList()) {
+            //首页的情况
+            if (qcResultAlgVO.getCasesId().equals(243L)) {
+                qcResultAlgHomePage.add(qcResultAlgVO);
+            } else {
+                //非首页
+                qcResultAlgHomePageExt.add(qcResultAlgVO);
+            }
+        }
+
+        //病案首页
+        AlgorithmVO homePage = new AlgorithmVO();
+        BeanUtil.copyProperties(algorithmVO, homePage);
+        homePage.setQcResultAlgVOList(qcResultAlgHomePage);
+        homePage.setIsHomePage(true);
+        cal(homePage, qualityControlDTO);
+
+        //病案首页以外
+        AlgorithmVO homePageExt = new AlgorithmVO();
+        BeanUtil.copyProperties(algorithmVO, homePageExt);
+        homePageExt.setQcResultAlgVOList(qcResultAlgHomePageExt);
+        cal(homePageExt,qualityControlDTO);
+    }
+
+    /**
+     * 计算分数
+     *
+     * @param algorithmVO 操作条目的所有信息
+     * @return 评分分数
+     */
+    private void cal(AlgorithmVO algorithmVO ,QualityControlDTO qualityControlDTO) {
+
+        //模块总分
+        Map<Long, BigDecimal> casesMap = new HashMap<>();
+        //单票否决计分
+        Map<Long, BigDecimal> rejectScoreMap = new HashMap<>();
+        //模块计分
+        Map<Long, BigDecimal> casesScoreMap = new HashMap<>();
+        //模块缺陷统计
+        Map<Long, String> casesNameMap = new HashMap<>();
+        //扣分统计
+        Map<Long, BigDecimal> scoreMap = new HashMap<>();
+
+        List<QcResultAlgVO> qcResultAlgVOList = algorithmVO.getQcResultAlgVOList();
+        if (ListUtil.isNotEmpty(qcResultAlgVOList)) {
+            for (QcResultAlgVO qcResultAlgVO : qcResultAlgVOList) {
+                if (!casesMap.containsKey(qcResultAlgVO.getCasesId())) {
+                    //模块总分
+                    casesMap.put(qcResultAlgVO.getCasesId(), qcResultAlgVO.getCasesScore());
+                }
+                if (!casesScoreMap.containsKey(qcResultAlgVO.getCasesId())) {
+                    casesScoreMap.put(qcResultAlgVO.getCasesId(), BigDecimal.ZERO);
+                    rejectScoreMap.put(qcResultAlgVO.getCasesId(), BigDecimal.ZERO);
+                    casesNameMap.put(qcResultAlgVO.getCasesId(),"");
+                }
+                //单票否决计分
+                if (qcResultAlgVO.getIsReject().equals(1)) {
+                    if (rejectScoreMap.containsKey(qcResultAlgVO.getCasesId())) {
+                        BigDecimal casesScore = rejectScoreMap.get(qcResultAlgVO.getCasesId());
+                        casesScore = casesScore.add(qcResultAlgVO.getScore());
+                        rejectScoreMap.put(qcResultAlgVO.getCasesId(), casesScore);
+                    }
+                } else {
+                    //非单票否决计分
+                    if (casesScoreMap.containsKey(qcResultAlgVO.getCasesId())) {
+                        BigDecimal casesScore = casesScoreMap.get(qcResultAlgVO.getCasesId());
+                        casesScore = casesScore.add(qcResultAlgVO.getScore());
+                        casesScoreMap.put(qcResultAlgVO.getCasesId(), casesScore);
+                    }
+                }
+                String casesName = casesNameMap.get(qcResultAlgVO.getCasesId());
+                if(StringUtils.isEmpty(casesName)){
+                    casesName =  casesName + qcResultAlgVO.getMsg();
+                }else{
+                    casesName =  casesName + ";" + qcResultAlgVO.getMsg();
+                }
+                casesNameMap.put(qcResultAlgVO.getCasesId(),casesName);
+            }
+
+
+                //模块计分
+                for (Map.Entry<Long, BigDecimal> casesScore : casesScoreMap.entrySet()) {
+                    BigDecimal allSccore = casesMap.get(casesScore.getKey());
+                    if (BigDecimalUtil.le(allSccore, casesScore.getValue())) {
+                        //模块标准分小于等于模块减分总和就用模块标准分
+                        allSccore = allSccore.add(rejectScoreMap.get(casesScore.getKey()));
+                    } else {
+                        //模块标准分大于模块减分总和就用模块减分总和
+                        allSccore =casesScore.getValue().add(rejectScoreMap.get(casesScore.getKey()));
+
+                    }
+                    if (BigDecimalUtil.lt(allSccore, BigDecimal.ZERO)) {
+                        allSccore = BigDecimal.ZERO;
+                    }
+                    scoreMap.put(casesScore.getKey(),allSccore);
+                }
+
+
+            DecimalFormat df=new DecimalFormat("0.0");
+
+                if(StringUtils.isNotEmpty(casesNameMap.get(237L))){
+                    qualityControlDTO.setAdmissionNote(casesNameMap.get(237L));
+                }
+                if( scoreMap.get(237L) != null){
+                qualityControlDTO.setAdmissionNoteScore( Double.valueOf(df.format(scoreMap.get(237L))));
+            }
+
+
+
+                if(StringUtils.isNotEmpty(casesNameMap.get(238L))){
+                    qualityControlDTO.setFirstCourseNote(casesNameMap.get(238L));
+            }
+            if( scoreMap.get(238L) != null){
+                qualityControlDTO.setFirstCourseNoteScore( Double.valueOf(df.format(scoreMap.get(238L))));
+            }
+
+
+
+                if(StringUtils.isNotEmpty(casesNameMap.get(242L))){
+                    qualityControlDTO.setDischargeNote(casesNameMap.get(242L));
+                }
+            if( scoreMap.get(242L) != null){
+                qualityControlDTO.setDischargeNoteScore( Double.valueOf(df.format(scoreMap.get(242L))));
+            }
+
+
+
+                if(StringUtils.isNotEmpty(casesNameMap.get(243L))){
+                    qualityControlDTO.setMedHomePage(casesNameMap.get(243L));
+                }
+            if( scoreMap.get(243L) != null){
+                qualityControlDTO.setMedHomePageScore( Double.valueOf(df.format(scoreMap.get(243L))));
+            }
+
+
+
+                if(StringUtils.isNotEmpty(casesNameMap.get(280L))){
+                    qualityControlDTO.setDocAdviceNote(casesNameMap.get(280L));
+                }
+            if( scoreMap.get(280L) != null){
+                qualityControlDTO.setDocAdviceNoteScore( Double.valueOf(df.format(scoreMap.get(280L))));
+            }
+
+
+            String operationInfo = "";
+                if(StringUtils.isNotEmpty(casesNameMap.get(248L))){
+                    operationInfo = "围手术期病历讨论:"+casesNameMap.get(248L);
+                }
+                if(StringUtils.isNotEmpty(casesNameMap.get(249L))){
+                    operationInfo = operationInfo+";"+"术前讨论制度:"+casesNameMap.get(249L);
+                }
+                if(operationInfo.contains(";")){
+                    String[] split = operationInfo.split(";");
+                    if(StringUtils.isEmpty(split[0])){
+                        operationInfo = split[1];
+                    }
+                }
+
+                qualityControlDTO.setOperationInfo(StringUtils.isEmpty(operationInfo)==true?"无缺陷":operationInfo);
+
+                Double score_248 = 0d;
+                Double score_11 = 0d;
+                Double score_249 = 0d;
+            if( scoreMap.get(248L) != null){
+                score_248 = Double.valueOf(df.format(scoreMap.get(248L)));
+            }
+            if( scoreMap.get(11L) != null){
+                score_11 =  Double.valueOf(df.format(scoreMap.get(11L)));
+            }
+            if( scoreMap.get(249L) != null){
+                score_249 = Double.valueOf(df.format(scoreMap.get(249L)));
+            }
+                qualityControlDTO.setOperationInfoScore(score_248+score_11+score_249);
+            }
+
+       String courseRecord = "";
+        if(StringUtils.isNotEmpty(casesNameMap.get(239L))){
+            courseRecord = "死亡病例讨论制度:"+casesNameMap.get(239L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(240L))){
+            courseRecord = courseRecord+";"+"疑难病例讨论制度:"+casesNameMap.get(240L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(241L))){
+            courseRecord =courseRecord+";"+ "三级查房制度:"+casesNameMap.get(241L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(244L))){
+            courseRecord =courseRecord+";"+ "会诊制度:"+casesNameMap.get(244L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(245L))){
+            courseRecord =courseRecord+";"+ "分级护理制度:"+casesNameMap.get(245L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(246L))){
+            courseRecord = courseRecord+";"+"值班及交接班制度:"+casesNameMap.get(246L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(247L))){
+            courseRecord = courseRecord+";"+"临床用血审核制度:"+casesNameMap.get(247L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(250L))){
+            courseRecord =courseRecord+";"+ "死亡记录:"+casesNameMap.get(250L);
+        }
+        if(courseRecord.contains(";")) {
+            String[] courseRecordSplit = courseRecord.split(";");
+            if (StringUtils.isEmpty(courseRecordSplit[0])) {
+                courseRecord = courseRecordSplit[1];
+            }
+        }
+        qualityControlDTO.setCourseRecord(StringUtils.isEmpty(courseRecord)==true?"无缺陷":courseRecord);
+
+
+        Double score_239 = 0d;
+        Double score_240 = 0d;
+        Double score_241 = 0d;
+        Double score_244 = 0d;
+        Double score_245 = 0d;
+        Double score_246 = 0d;
+        Double score_247 = 0d;
+        Double score_250 = 0d;
+        DecimalFormat df=new DecimalFormat("0.0");
+        if( scoreMap.get(239L) != null){
+            score_239 =  Double.valueOf(df.format(scoreMap.get(239L)));
+        }
+        if( scoreMap.get(240L) != null){
+            score_240 =  Double.valueOf(df.format(scoreMap.get(240L)));
+        }
+        if( scoreMap.get(241L) != null){
+            score_241 =  Double.valueOf(df.format(scoreMap.get(241L)));
+        }
+        if( scoreMap.get(244L) != null){
+            score_244 =  Double.valueOf(df.format(scoreMap.get(244L)));
+        }
+        if( scoreMap.get(245L) != null){
+            score_245 =  Double.valueOf(df.format(scoreMap.get(245L)));
+        }
+        if( scoreMap.get(246L) != null){
+            score_246 =  Double.valueOf(df.format(scoreMap.get(246L)));
+        }
+        if( scoreMap.get(247L) != null){
+            score_247 =  Double.valueOf(df.format(scoreMap.get(247L)));
+        }
+        if( scoreMap.get(250L) != null){
+            score_250 =  Double.valueOf(df.format(scoreMap.get(250L)));
+
+        }
+        qualityControlDTO.setCourseRecordScore(score_239+score_240+score_241+score_244+score_245+score_246+score_247+score_250);
+                  /*  qualityControlDTO.setCourseRecord(name_239+";"+name_240
+                                    +";"+name_241+";"+name_244+";"+name_245
+                                    +";"+name_246+";"+name_247+";"+name_250);
+                    qualityControlDTO.setCourseRecordScore(score_239+score_240+score_241+score_244+score_245+score_246
+                            +score_247+score_250);*/
+
+
+
+
+        Double score_262 = 0d;
+        Double score_281 = 0d;
+        Double score_282 = 0d;
+        Double score_283 = 0d;
+        Double score_284 = 0d;
+        if( scoreMap.get(262L) != null){
+            score_262 =  Double.valueOf(df.format(scoreMap.get(262L)));
+        }
+        if( scoreMap.get(281L) != null){
+            score_281 =  Double.valueOf(df.format(scoreMap.get(281L)));
+        }
+        if( scoreMap.get(282L) != null){
+            score_282 =  Double.valueOf(df.format(scoreMap.get(282L)));
+        }
+        if( scoreMap.get(283L) != null){
+            score_283 =  Double.valueOf(df.format(scoreMap.get(283L)));
+        }
+        if( scoreMap.get(284L) != null){
+            score_284 =  Double.valueOf(df.format(scoreMap.get(284L)));
+
+        }
+
+        String otherCase = "";
+        if(StringUtils.isNotEmpty(casesNameMap.get(262L))){
+            otherCase = "危急值报告制度:"+casesNameMap.get(262L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(281L))){
+            otherCase = otherCase +";"+"危急值报告制度:"+casesNameMap.get(281L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(282L))){
+            otherCase = otherCase +";"+ "危急值报告制度:"+casesNameMap.get(282L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(283L))){
+            otherCase = otherCase +";"+ "危急值报告制度:"+casesNameMap.get(283L);
+        }
+        if(StringUtils.isNotEmpty(casesNameMap.get(284L))){
+            otherCase = otherCase +";"+ "危急值报告制度:"+casesNameMap.get(284L);
+        }
+        if(otherCase.contains(";")) {
+        String[] otherCaseSplit = otherCase.split(";");
+        if(StringUtils.isEmpty(otherCaseSplit[0])){
+            otherCase = otherCaseSplit[1];
+        }
+        }
+            qualityControlDTO.setOtherCase(StringUtils.isEmpty(otherCase)==true?"无缺陷":otherCase);
+            qualityControlDTO.setOtherCaseScore(score_262+score_281+score_282+score_283+score_284);
+
+    }
 }
 

+ 0 - 5
src/main/java/com/diagbot/facade/FilterFacade.java

@@ -403,11 +403,6 @@ public class FilterFacade {
         String userId = SysUserUtils.getCurrentPrincipleID();
         qcResultPageVO.setHospitalId(hospitalId);
         qcResultPageVO.setUserId(Long.valueOf(userId));
-        if (StringUtils.isEmpty(qcResultPageVO.getDoctorId())) {
-            qcResultPageVO.setDoctorName("");
-        }
-        /*long interval = qcResultShortPageVO.getEndDate().getTime() + 1000;
-        qcResultShortPageVO.setEndDate(new Date(Long.valueOf(interval)));*/
     }
 
 

+ 15 - 8
src/main/java/com/diagbot/facade/SysUserFacade.java

@@ -49,11 +49,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -92,6 +88,8 @@ public class SysUserFacade extends SysUserServiceImpl {
 
     @Autowired
     private SysUserHospitalFacade sysUserHospitalFacade;
+    @Autowired
+    private SysUserRoleFacade sysUserRoleFacade;
 
     /**
      * 获取jwt
@@ -275,12 +273,21 @@ public class SysUserFacade extends SysUserServiceImpl {
      */
     public LoginDTO getUserOrgMenu() {
         LoginDTO data = new LoginDTO();
-
+        Set<String> roleSet = new HashSet<>();
         Long userId = Long.parseLong(SysUserUtils.getCurrentPrincipleID());
         SysUser user = this.getOne(new QueryWrapper<SysUser>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("status", StatusEnum.Enable.getKey())
                 .eq("id", userId), false);
+        QueryWrapper<SysUserRole> sysUserRoleQueryWrapper = new QueryWrapper<>();
+        sysUserRoleQueryWrapper.eq("user_id",userId);
+        sysUserRoleQueryWrapper .eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<SysUserRole> sysUserRoleList = sysUserRoleFacade.list(sysUserRoleQueryWrapper);
+        if(ListUtil.isNotEmpty(sysUserRoleList)){
+            sysUserRoleList.forEach(sysUserRole ->{
+                    roleSet.add(sysUserRole.getRoleId()+"");
+            } );
+        }
         if (user == null) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                     "用户不存在【" + userId + "】");
@@ -302,8 +309,8 @@ public class SysUserFacade extends SysUserServiceImpl {
         }
 
         //添加菜单信息
-        List<SysMenuWrapper> menuList = sysMenuFacade.getByRole(user.getId());
-        List<SysUserPermissionDTO> sysUserPermissionDTOList = sysMenuFacade.getByRolePermission(user.getId());
+        List<SysMenuWrapper> menuList = sysMenuFacade.getByRole(user.getId(),roleSet);
+        List<SysUserPermissionDTO> sysUserPermissionDTOList = sysMenuFacade.getByRolePermission(user.getId(),roleSet);
         Map<Long, List<SysMenuWrapper>> menuMap = EntityUtil.makeEntityListMap(menuList, "parentId");
         Map<Long, List<SysUserPermissionDTO>> menuPermissionMap = EntityUtil.makeEntityListMap(sysUserPermissionDTOList, "menuId");
         List<SysMenuWrapper> menuRes = menuMap.get(-1L);

+ 48 - 40
src/main/java/com/diagbot/facade/data/ABasDeptInfoFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.vo.data.ABasDeptInfoVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -25,6 +26,8 @@ public class ABasDeptInfoFacade extends BasDeptInfoServiceImpl{
     private BasDeptInfoServiceImpl basDeptInfoService;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 
@@ -52,54 +55,59 @@ public class ABasDeptInfoFacade extends BasDeptInfoServiceImpl{
      * @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);
+        try{
+            if(list!=null && list.size()>0){
+                List<BasDeptInfo> basDeptInfoList=Lists.newArrayList();
+                basDeptInfoList=BeanUtil.listCopyTo(list,BasDeptInfo.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);
 
-            //循环验证数据有效性
-            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("请输入科室名称!");
+                if(logSwitch){
+                    basDeptInfoList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("科室信息-正常","", JSON.toJSONString(list),"","");
+                    });
                 }
+                return RespDTO.onSuc("操作正常!");
+            }else {
+                return RespDTO.onError("未接收到数据!");
             }
-            execute(basDeptInfoList);
-            return RespDTO.onSuc(basDeptInfoDtoList);
-        }else {
-            return RespDTO.onError("未接收到数据!");
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("科室信息-异常","", JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
         }
     }
 
     public void execute(List<BasDeptInfo> basDeptInfoList){
-        try{
-            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()), false);
-                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);
+        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()), false);
+            if (basDeptInfo != null) {
+                s.setGmtModified(new Date());
+                updateE.add(s);
+            } else {
+                s.setGmtCreate(new Date());
+                addE.add(s);
             }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("科室信息","", JSON.toJSONString(basDeptInfoList),"",e.getMessage());
+        });
+        if(updateE.size()>0){
+            basDeptInfoService.updateBatchByKey(updateE);
+        }
+        if(addE.size()>0){
+            basDeptInfoService.saveBatch(addE);
         }
     }
 }

+ 46 - 39
src/main/java/com/diagbot/facade/data/ABasDoctorInfoFacade.java

@@ -12,6 +12,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -24,7 +25,8 @@ public class ABasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
     private BasDoctorInfoServiceImpl basDoctorInfoService;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
     private TZDBConn tzDBConn = new TZDBConn();
 
     /**
@@ -50,51 +52,56 @@ public class ABasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
      * @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("请输入医院编码!");
+        try {
+            if(list!=null && list.size()>0){
+                List<BasDoctorInfo> basDoctorInfoList=Lists.newArrayList();
+                basDoctorInfoList=BeanUtil.listCopyTo(list,BasDoctorInfo.class);
+                //循环验证数据有效性
+                for (BasDoctorInfo basDoctorInfo:basDoctorInfoList) {
+                    if("".equals(basDoctorInfo.getDoctorId())) {
+                        return RespDTO.onError("请输入医生编码!");
+                    }else if(basDoctorInfo.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }
+                }
+                execute(basDoctorInfoList);
+
+                if(logSwitch){
+                    basDoctorInfoList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("医生信息-正常","", JSON.toJSONString(list),"","");
+                    });
                 }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
             }
-            execute(basDoctorInfoList);
-            return RespDTO.onSuc(basDoctorDtoList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("医生信息-异常","", JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
         }
     }
 
     public void execute(List<BasDoctorInfo> basDoctorInfoList){
-        try {
-            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);
+        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);
             }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("医生信息","", JSON.toJSONString(basDoctorInfoList),"",e.getMessage());
+        });
+        if(updateE.size()>0){
+            basDoctorInfoService.updateBatchByKey(updateE);
+        }
+        if(addE.size()>0){
+            basDoctorInfoService.saveBatch(addE);
         }
     }
 }

+ 89 - 86
src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java

@@ -22,6 +22,7 @@ import com.diagbot.vo.data.APlaceFileVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -35,11 +36,9 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
     @Autowired
     private QcTypeFacade qcTypeFacade;
     @Autowired
-    private AMedicalRecordFacade aMedicalRecordFacade;
-    @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-    @Autowired
-    private QcAbnormalFacade qcAbnormalFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 
@@ -69,76 +68,80 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @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()));
-                }
-                if(StringUtil.isNotBlank(s.getPlacefileDate())){
-                    behospitalInfo.setPlacefileDate(DateUtil.parseDateTime(s.getPlacefileDate()));
+        try {
+            if(list!=null && list.size()>0) {
+                List<BehospitalInfo> behospitalInfoList = 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()));
+                    }
+                    if(StringUtil.isNotBlank(s.getPlacefileDate())){
+                        behospitalInfo.setPlacefileDate(DateUtil.parseDateTime(s.getPlacefileDate()));
+                    }
+                    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("请输入住院科室名称!");
+                    }
                 }
-                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);
+                if(logSwitch){
+                    behospitalInfoList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-正常","", JSON.toJSONString(list),"","");
+                    });
                 }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
             }
-            execute(behospitalInfoList);
-            behospitalInfoDtoList = BeanUtil.listCopyTo(list, ABehospitalInfoDTO.class);
-            return RespDTO.onSuc(behospitalInfoDtoList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记-异常","", JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
         }
     }
 
     public void execute(List<BehospitalInfo> behospitalInfoList){
-        try {
-            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())
-                        .eq("is_deleted",IsDeleteEnum.N), false);
-                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);
+        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())
+                    .eq("is_deleted",IsDeleteEnum.N), false);
+            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);
             }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院登记","", JSON.toJSONString(behospitalInfoList),"",e.getMessage());
+        });
+        if(addE.size()>0){
+            behospitalInfoService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            behospitalInfoService.updateBatchByKey(updateE);
         }
     }
 
@@ -147,27 +150,27 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @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())
+    private Long initQcTypeId(BehospitalInfo s) {
+        Long qcTypeId = Long.valueOf("0");
+        //根据科室查找对应质控类型
+        List<QcType> qcTypeList = qcTypeFacade.list(new QueryWrapper<QcType>()
+                .eq("beh_dept_id", s.getBehDeptId())
                 .eq("hospital_id", s.getHospitalId())
-                .eq("mode_id", Long.valueOf("1"))
-                .eq("is_deleted",IsDeleteEnum.N), false);
-        if(medicalRecord!=null){
-            QcType qcType=qcTypeFacade.getOne(new QueryWrapper<QcType>()
-                    .eq("name", medicalRecord.getRecTitle())
-                    .eq("hospital_id", medicalRecord.getHospitalId())
-                    .eq("is_deleted",IsDeleteEnum.N));
-            if(qcType!=null && qcType.getDefaultModule()==0){
-                qcTypeId=qcType.getId();
-            }else{
-                QcType qcTypeStand=qcTypeFacade.getOne(new QueryWrapper<QcType>()
-                        .eq("default_module", 1)
-                        .eq("hospital_id", medicalRecord.getHospitalId())
-                        .eq("is_deleted",IsDeleteEnum.N));
-                if(qcTypeStand!=null){
-                    qcTypeId=qcTypeStand.getId();
+                .eq("is_deleted", IsDeleteEnum.N));
+        if(qcTypeList == null || qcTypeList.size() == 0){
+            //无质控类型时,新增后初始化
+            QcType qcType = qcTypeFacade.getOne(new QueryWrapper<QcType>()
+                    .eq("default_module", 1)
+                    .eq("hospital_id", s.getHospitalId())
+                    .eq("is_deleted", IsDeleteEnum.N));
+            qcTypeId = qcType.getId();
+        } else if (qcTypeList.size() == 1) {
+            qcTypeId = qcTypeList.get(0).getId();
+        }else {
+            //查找是否有性别区分质控类型
+            for (QcType qcType:qcTypeList) {
+                if (qcType.getSex().equals(s.getSex())) {
+                    qcTypeId = qcType.getId();
                 }
             }
         }

+ 63 - 57
src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ADoctorAdviceDTO;
 import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.DoctorAdviceServiceImpl;
@@ -17,6 +16,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -30,6 +30,8 @@ public class ADoctorAdviceFacade extends DoctorAdviceServiceImpl{
     private DoctorAdviceServiceImpl doctorAdviceService;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 
@@ -53,68 +55,72 @@ public class ADoctorAdviceFacade extends DoctorAdviceServiceImpl{
      * @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){
+    public RespDTO executeDoctorAdvice(List<ADoctorAdviceVO> list) {
         try {
-            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()), false);
-                    if (doctorAdvice != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
+            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.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);
                 });
-            }
-            if(addE.size()>0){
-                doctorAdviceService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                doctorAdviceService.updateBatchByKey(updateE);
+                execute(doctorAdviceList);
+                if(logSwitch){
+                    doctorAdviceList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院医嘱-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
             }
         }catch (Exception e){
             log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("医嘱信息","", JSON.toJSONString(doctorAdviceList),"",e.getMessage());
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病人住院医嘱-异常","", JSON.toJSONString(list),"",e.getMessage());
+            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()), false);
+                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);
         }
     }
 

+ 45 - 39
src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java

@@ -17,6 +17,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -28,9 +29,10 @@ public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
     @Autowired
     @Qualifier("homeDiagnoseInfoServiceImpl")
     private HomeDiagnoseInfoServiceImpl homeDiagnoseInfoService;
-
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 
@@ -51,49 +53,53 @@ public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
      * @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("未接收到数据!");
+        try{
+            if(list!=null && list.size()>0){
+                List<HomeDiagnoseInfo> homeDiagnoseList=Lists.newArrayList();
+                homeDiagnoseList=BeanUtil.listCopyTo(list,HomeDiagnoseInfo.class);
+                execute(homeDiagnoseList);
+                if(logSwitch){
+                    homeDiagnoseList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页医嘱-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页医嘱-异常","", JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
         }
+
     }
 
     public void execute(List<HomeDiagnoseInfo> homeDiagnoseList){
-        try{
-            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()), false);
-                        if (diagnoseInfo != null) {
-                            s.setGmtModified(new Date());
-                            updateE.add(s);
-                        } else {
-                            s.setGmtCreate(new Date());
-                            addE.add(s);
-                        }
+        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()), false);
+                    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);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页-医嘱","", JSON.toJSONString(homeDiagnoseList),"",e.getMessage());
+                }
+            });
+        }
+        if(addE.size()>0){
+            homeDiagnoseInfoService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            homeDiagnoseInfoService.updateBatchByKey(updateE);
         }
     }
 

+ 53 - 42
src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java

@@ -17,6 +17,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -30,6 +31,8 @@ public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
     private HomeOperationInfoServiceImpl homeOperationInfoService;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 
@@ -49,53 +52,61 @@ public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
      * @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){
+    public RespDTO executeHomeOperation(List<AHomeOperationVO> list) {
         try {
-            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, false);
-                        if (operationInfo != null) {
-                            s.setGmtModified(new Date());
-                            updateE.add(s);
-                        } else {
-                            s.setGmtCreate(new Date());
-                            addE.add(s);
-                        }
-                    }
+            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);
                 });
-            }
-            if(addE.size()>0){
-                homeOperationInfoService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                homeOperationInfoService.updateBatchByKey(updateE);
+                homeOperationDtoList=BeanUtil.listCopyTo(list,AHomeOperationDTO.class);
+                execute(homeOperationList);
+                if(logSwitch){
+                    homeOperationList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页手术-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
             }
         }catch (Exception e){
             log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页-手术","",JSON.toJSONString(homeOperationList),"",e.getMessage());
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病案首页手术-异常","",JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    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, false);
+                    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);
         }
     }
 

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

@@ -16,6 +16,7 @@ import com.diagbot.vo.data.*;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -45,6 +46,9 @@ public class AHomePageFacade extends HomePageServiceImpl{
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
 
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
     private TZDBConn tzDBConn = new TZDBConn();
 
     /**

+ 38 - 25
src/main/java/com/diagbot/facade/data/AMedCrisisFacade.java

@@ -12,6 +12,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -25,36 +26,48 @@ public class AMedCrisisFacade extends MedCrisisInfoServiceImpl {
     private MedCrisisInfoServiceImpl medCrisisInfoService;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     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("请输入危急值类型!");
+        try{
+            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<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("未接收到数据!");
+                if(logSwitch){
+                    medCrisisList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("危急值信息-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            } else {
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("危急值信息-异常","", JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
         }
     }
 

+ 122 - 0
src/main/java/com/diagbot/facade/data/AMedLisInfoFacade.java

@@ -0,0 +1,122 @@
+package com.diagbot.facade.data;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MedLisInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.MedLisInfoServiceImpl;
+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.ADeleteFlagVO;
+import com.diagbot.vo.data.AMedLisInfoVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AMedLisInfoFacade extends MedLisInfoServiceImpl {
+
+    private TZDBConn tzDBConn = new TZDBConn();
+    @Autowired
+    @Qualifier("medLisInfoServiceImpl")
+    private MedLisInfoServiceImpl medLisInfoServiceImpl;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public RespDTO  dealData(List<AMedLisInfoVO> list) {
+        try {
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (AMedLisInfoVO aMedLisInfoVO:list) {
+                    if(StringUtil.isEmpty(aMedLisInfoVO.getRepNo())){
+                        return RespDTO.onError("请输入报告单号!");
+                    }else if(aMedLisInfoVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if(StringUtil.isEmpty(aMedLisInfoVO.getBehospitalCode())) {
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+
+                List<MedLisInfo> medLisInfoList=Lists.newArrayList();
+                list.stream().forEach(s->{
+                    MedLisInfo medLisInfo=new MedLisInfo();
+                    BeanUtil.copyProperties(s,medLisInfo);
+                    medLisInfoList.add(medLisInfo);
+                });
+                execute(medLisInfoList);
+                if(logSwitch){
+                    medLisInfoList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("检验信息-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检验信息-异常","",JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError(e.getMessage());
+        }
+    }
+    
+    public void execute(List<MedLisInfo> medLisInfoList){
+        List<MedLisInfo> addE = Lists.newLinkedList();
+        List<MedLisInfo> updateE = Lists.newLinkedList();
+        if (medLisInfoList != null && medLisInfoList.size() > 0) {
+            medLisInfoList.stream().forEach(s -> {
+                MedLisInfo medLisInfo = this.getOne(new QueryWrapper<MedLisInfo>()
+                        .eq("rep_no", s.getRepNo())
+                        .eq("hospital_id", s.getHospitalId()), false);
+                if (medLisInfo != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            medLisInfoServiceImpl.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+    public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
+        try {
+            //验证数据是否存在
+            if(StringUtil.isEmpty(aDeleteFlagVO.getRepNo())){
+                return RespDTO.onError("请输入报告单号!");
+            }else if(aDeleteFlagVO.getHospitalId()==null){
+                return RespDTO.onError("请输入医院编码!");
+            }else {
+                UpdateWrapper<MedLisInfo> updateWrapper=new UpdateWrapper<>();
+                updateWrapper.eq("rep_no", aDeleteFlagVO.getRepNo())
+                        .eq("hospital_id", aDeleteFlagVO.getHospitalId())
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .set("is_deleted",IsDeleteEnum.Y)
+                        .set("gmt_modified", DateUtil.now());
+
+                Boolean flag=update(new MedLisInfo(),updateWrapper);
+                //aMedAbnormalInfoFacade.saveAbnormalInfo("检查-删除",JSON.toJSONString(aDeleteFlagVO),JSON.toJSONString(RespDTO.onSuc(flag)),"操作成功!");
+                return RespDTO.onSuc(flag);
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-删除异常",aDeleteFlagVO.getRecId(), JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
+            return RespDTO.onError(e.getMessage());
+        }
+    }
+}

+ 34 - 34
src/main/java/com/diagbot/facade/data/AMedLisResultFacade.java

@@ -15,6 +15,7 @@ import com.diagbot.vo.data.ADeleteFlagVO;
 import com.diagbot.vo.data.AMedLisResultVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -24,7 +25,8 @@ import java.util.List;
 public class AMedLisResultFacade extends MedLisResultServiceImpl {
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
     private TZDBConn tzDBConn = new TZDBConn();
 
     /**
@@ -38,7 +40,7 @@ public class AMedLisResultFacade extends MedLisResultServiceImpl {
         execute(medLisResultList);
     }
 
-    public RespDTO<List<AMedLisResultVO>> executeMedLisResult(List<AMedLisResultVO> list) {
+    public RespDTO executeMedLisResult(List<AMedLisResultVO> list) {
         try {
             if(list!=null && list.size()>0){
                 //循环验证数据有效性
@@ -59,58 +61,56 @@ public class AMedLisResultFacade extends MedLisResultServiceImpl {
                     medLisResultList.add(medLisResult);
                 });
                 execute(medLisResultList);
-
-                return RespDTO.onSuc(list);
+                if(logSwitch){
+                    medLisResultList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("检验结果-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
             }else{
-                aMedAbnormalInfoFacade.saveAbnormalInfo("检验","",JSON.toJSONString(list),"","未接收到数据!");
                 return RespDTO.onError("未接收到数据!");
             }
         }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("检验","",JSON.toJSONString(list),"",e.getMessage());
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检验结果-异常","",JSON.toJSONString(list),"",e.getMessage());
             return RespDTO.onError(e.getMessage());
         }
     }
 
     public void execute(List<MedLisResult> medLisResultList){
-        try {
-            List<MedLisResult> addE = Lists.newLinkedList();
-            List<MedLisResult> updateE = Lists.newLinkedList();
-            if (medLisResultList != null && medLisResultList.size() > 0) {
-                medLisResultList.stream().forEach(s -> {
-                    MedLisResult medLisResult = this.getOne(new QueryWrapper<MedLisResult>()
-                            .eq("rep_no", s.getRepNo())
-                            .eq("hospital_id", s.getHospitalId()), false);
-                    if (medLisResult != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                this.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-            //aMedAbnormalInfoFacade.saveAbnormalInfo("检验",JSON.toJSONString(medLisResultList),"","操作成功!");
-        }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("检验","",JSON.toJSONString(medLisResultList),"",e.getMessage());
+        List<MedLisResult> addE = Lists.newLinkedList();
+        List<MedLisResult> updateE = Lists.newLinkedList();
+        if (medLisResultList != null && medLisResultList.size() > 0) {
+            medLisResultList.stream().forEach(s -> {
+                MedLisResult medLisResult = this.getOne(new QueryWrapper<MedLisResult>()
+                        .eq("rep_no", s.getRepNo())
+                        .eq("hospital_id", s.getHospitalId()), false);
+                if (medLisResult != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            this.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
         }
     }
 
     public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
         try {
             //验证数据是否存在
-            if(StringUtil.isEmpty(aDeleteFlagVO.getReptNo())){
+            if(StringUtil.isEmpty(aDeleteFlagVO.getRepNo())){
                 return RespDTO.onError("请输入报告单号!");
             }else if(aDeleteFlagVO.getHospitalId()==null){
                 return RespDTO.onError("请输入医院编码!");
             }else {
                 UpdateWrapper<MedLisResult> updateWrapper=new UpdateWrapper<>();
-                updateWrapper.eq("rep_no", aDeleteFlagVO.getReptNo())
+                updateWrapper.eq("rep_no", aDeleteFlagVO.getRepNo())
                         .eq("hospital_id", aDeleteFlagVO.getHospitalId())
                         .eq("is_deleted",IsDeleteEnum.N)
                         .set("is_deleted",IsDeleteEnum.Y)

+ 124 - 0
src/main/java/com/diagbot/facade/data/AMedPacsInfoFacade.java

@@ -0,0 +1,124 @@
+package com.diagbot.facade.data;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MedPacsInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.MedPacsInfoServiceImpl;
+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.ADeleteFlagVO;
+import com.diagbot.vo.data.AMedPacsInfoVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AMedPacsInfoFacade extends MedPacsInfoServiceImpl {
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    @Autowired
+    @Qualifier("medPacsInfoServiceImpl")
+    private MedPacsInfoServiceImpl medPacsInfoServiceImpl;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    
+    public RespDTO dealData(List<AMedPacsInfoVO> list) {
+        try {
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (AMedPacsInfoVO aMedPacsInfoVO:list) {
+                    if(StringUtil.isEmpty(aMedPacsInfoVO.getRepNo())){
+                        return RespDTO.onError("请输入报告单号!");
+                    }else if(aMedPacsInfoVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if(StringUtil.isEmpty(aMedPacsInfoVO.getBehospitalCode())) {
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+
+                List<MedPacsInfo> medPacsInfoList=Lists.newArrayList();
+                list.stream().forEach(s->{
+                    MedPacsInfo medPacsInfo=new MedPacsInfo();
+                    BeanUtil.copyProperties(s,medPacsInfo);
+                    medPacsInfoList.add(medPacsInfo);
+                });
+                execute(medPacsInfoList);
+
+                if(logSwitch){
+                    medPacsInfoList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-异常","",JSON.toJSONString(list),"",e.getMessage());
+            return RespDTO.onError(e.getMessage());
+        }
+    }
+    
+    public void execute(List<MedPacsInfo> medPacsInfoList){
+        List<MedPacsInfo> addE = Lists.newLinkedList();
+        List<MedPacsInfo> updateE = Lists.newLinkedList();
+        if (medPacsInfoList != null && medPacsInfoList.size() > 0) {
+            medPacsInfoList.stream().forEach(s -> {
+                MedPacsInfo medPacsInfo = this.getOne(new QueryWrapper<MedPacsInfo>()
+                        .eq("rep_no", s.getRepNo())
+                        .eq("hospital_id", s.getHospitalId()), false);
+                if (medPacsInfo != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            medPacsInfoServiceImpl.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+    public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
+        try {
+            //验证数据是否存在
+            if(StringUtil.isEmpty(aDeleteFlagVO.getRepNo())){
+                return RespDTO.onError("请输入报告单号!");
+            }else if(aDeleteFlagVO.getHospitalId()==null){
+                return RespDTO.onError("请输入医院编码!");
+            }else {
+                UpdateWrapper<MedPacsInfo> updateWrapper=new UpdateWrapper<>();
+                updateWrapper.eq("rep_no", aDeleteFlagVO.getRepNo())
+                        .eq("hospital_id", aDeleteFlagVO.getHospitalId())
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .set("is_deleted",IsDeleteEnum.Y)
+                        .set("gmt_modified", DateUtil.now());
+
+                Boolean flag=update(new MedPacsInfo(),updateWrapper);
+                //aMedAbnormalInfoFacade.saveAbnormalInfo("检查-删除",JSON.toJSONString(aDeleteFlagVO),JSON.toJSONString(RespDTO.onSuc(flag)),"操作成功!");
+                return RespDTO.onSuc(flag);
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-删除异常",aDeleteFlagVO.getRecId(), JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
+            return RespDTO.onError(e.getMessage());
+        }
+    }
+}

+ 33 - 33
src/main/java/com/diagbot/facade/data/AMedPacsResultFacade.java

@@ -15,6 +15,7 @@ import com.diagbot.vo.data.ADeleteFlagVO;
 import com.diagbot.vo.data.AMedPacsResultVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -24,6 +25,8 @@ import java.util.List;
 public class AMedPacsResultFacade extends MedPacsResultServiceImpl {
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 
@@ -59,65 +62,62 @@ public class AMedPacsResultFacade extends MedPacsResultServiceImpl {
                     medPacsResultList.add(medPacsResult);
                 });
                 execute(medPacsResultList);
-
-                return RespDTO.onSuc(list);
+                if(logSwitch){
+                    medPacsResultList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("检查结果-正常","", JSON.toJSONString(list),"","");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
             }else{
-                aMedAbnormalInfoFacade.saveAbnormalInfo("检查","",JSON.toJSONString(list),"","未接收到数据!");
                 return RespDTO.onError("未接收到数据!");
             }
         }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("检查","",JSON.toJSONString(list),"",e.getMessage());
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查结果-异常","",JSON.toJSONString(list),"",e.getMessage());
             return RespDTO.onError(e.getMessage());
         }
     }
 
     public void execute(List<MedPacsResult> medPacsResultList){
-        try {
-            List<MedPacsResult> addE = Lists.newLinkedList();
-            List<MedPacsResult> updateE = Lists.newLinkedList();
-            if (medPacsResultList != null && medPacsResultList.size() > 0) {
-                medPacsResultList.stream().forEach(s -> {
-                    MedPacsResult medPacsResult = this.getOne(new QueryWrapper<MedPacsResult>()
-                            .eq("rep_no", s.getRepNo())
-                            .eq("hospital_id", s.getHospitalId()), false);
-                    if (medPacsResult != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                this.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-            //aMedAbnormalInfoFacade.saveAbnormalInfo("检查",JSON.toJSONString(medPacsResultList),"","操作成功!");
-        }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("检查","",JSON.toJSONString(medPacsResultList),"",e.getMessage());
+        List<MedPacsResult> addE = Lists.newLinkedList();
+        List<MedPacsResult> updateE = Lists.newLinkedList();
+        if (medPacsResultList != null && medPacsResultList.size() > 0) {
+            medPacsResultList.stream().forEach(s -> {
+                MedPacsResult medPacsResult = this.getOne(new QueryWrapper<MedPacsResult>()
+                        .eq("rep_no", s.getRepNo())
+                        .eq("hospital_id", s.getHospitalId()), false);
+                if (medPacsResult != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            this.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
         }
     }
 
     public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
         try {
             //验证数据是否存在
-            if(StringUtil.isEmpty(aDeleteFlagVO.getReptNo())){
+            if(StringUtil.isEmpty(aDeleteFlagVO.getRepNo())){
                 return RespDTO.onError("请输入报告单号!");
             }else if(aDeleteFlagVO.getHospitalId()==null){
                 return RespDTO.onError("请输入医院编码!");
             }else {
                 UpdateWrapper<MedPacsResult> updateWrapper=new UpdateWrapper<>();
-                updateWrapper.eq("rep_no", aDeleteFlagVO.getReptNo())
+                updateWrapper.eq("rep_no", aDeleteFlagVO.getRepNo())
                         .eq("hospital_id", aDeleteFlagVO.getHospitalId())
                         .eq("is_deleted",IsDeleteEnum.N)
                         .set("is_deleted",IsDeleteEnum.Y)
                         .set("gmt_modified", DateUtil.now());
 
                 Boolean flag=update(new MedPacsResult(),updateWrapper);
-                //aMedAbnormalInfoFacade.saveAbnormalInfo("检查-删除",JSON.toJSONString(aDeleteFlagVO),JSON.toJSONString(RespDTO.onSuc(flag)),"操作成功!");
                 return RespDTO.onSuc(flag);
             }
         }catch (Exception e){

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

@@ -17,6 +17,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -30,6 +31,8 @@ public class AMedicalRecordContentFacade extends MedicalRecordContentServiceImpl
     private MedicalRecordContentServiceImpl medicalRecordContentService;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     private TZDBConn tzDBConn = new TZDBConn();
 

+ 13 - 6
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -1,7 +1,6 @@
 package com.diagbot.facade.data;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.TypeReference;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.AnalyzeRunDTO;
@@ -16,10 +15,11 @@ import com.diagbot.facade.*;
 import com.diagbot.service.impl.MedicalRecordServiceImpl;
 import com.diagbot.service.impl.QcAbnormalServiceImpl;
 import com.diagbot.util.*;
-import com.diagbot.vo.*;
+import com.diagbot.vo.AnalyzeRunVO;
+import com.diagbot.vo.MedrecVo;
+import com.diagbot.vo.QueryVo;
 import com.diagbot.vo.data.*;
 import com.google.common.collect.Lists;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
@@ -68,6 +68,12 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
     @Value("${encrypt.enable}")
     Boolean encryptFlag;
 
+    @Value("${xml_analyse.enable}")
+    Boolean xmlAnalyseFlag;
+
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
     private TZDBConn tzDBConn = new TZDBConn();
 
     /**
@@ -281,9 +287,10 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
                 aMedicalRecordContentFacade.executeMrRecordContent(s.getContents());
             });
 
-            //数据解析
-            splicingParam(aMrContentVO);
-
+            //数据解析,评分规则等还未完整时不解析
+            if(xmlAnalyseFlag){
+                splicingParam(aMrContentVO);
+            }
             //评分后返回结构体
             return mrIng(aMrContentVO);
 

+ 134 - 48
src/main/java/com/diagbot/facade/data/ColumnFacade.java

@@ -2,12 +2,15 @@ package com.diagbot.facade.data;
 
 import com.alibaba.fastjson.JSON;
 import com.diagbot.dto.OutputInfo;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.Response;
 import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.ModeIdEnum;
 import com.diagbot.facade.QcClientFacade;
 import com.diagbot.facade.str.*;
 import com.diagbot.service.impl.ColumnServiceImpl;
 import com.diagbot.vo.QueryVo;
+import com.diagbot.vo.str.StrContentVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -28,7 +31,7 @@ public class ColumnFacade extends ColumnServiceImpl {
      * 解析
      * @param queryVo
      */
-    public void analyseRec(QueryVo queryVo){
+    public void analyseRec(QueryVo queryVo) {
         try {
             Response<OutputInfo> resp=qcClientFacade.analyseField(queryVo);
             if(resp.getData()!=null && resp.getData().getPageData()!=null){
@@ -54,6 +57,89 @@ public class ColumnFacade extends ColumnServiceImpl {
 
     }
 
+    /**
+     * @Description:解析his传输过来的wholeData
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void analyseWholeData(StrContentVO strContentVO) throws Exception{
+        //调用解析接口
+        Response<OutputInfo> resp=null;
+        //qcClientFacade.analyseField(queryVo);
+        if(resp.getData()!=null && resp.getData().getPageData()!=null){
+            Map<String, Object> pageData=resp.getData().getPageData();
+            pageData.forEach((key,value)->{
+                List<Map<String, Object>> listMap=(List<Map<String,Object>>)resp.getData().getPageData().get(key);
+                Map<String, String> columnMap=this.getColumn(CacheKeyEnum.getName(key));
+
+                Map<String, Object> entityMap=new HashMap<String, Object>();
+                listMap.forEach(s->{
+                    columnMap.forEach((k, v) -> {
+                        entityMap.put(v,s.get(k));
+                    });
+                    //数据解析
+                    analysisData(ModeIdEnum.getName(Integer.parseInt(strContentVO.getModelId())),entityMap,strContentVO.getHospitalId(),JSON.toJSONString(s));
+                });
+            });
+        }
+    }
+
+    /**
+     * @Description: 不解析时,先入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void addWholeData(StrContentVO strContentVO){
+        String modelName=ModeIdEnum.getName(Integer.parseInt(strContentVO.getModelId()));
+        if("入院记录".equals(modelName)){
+            bStrAdmissionNoteFacade.dealData(strContentVO);
+        }else if("首次病程录".equals(modelName)){
+            bStrFirstRecordFacade.dealData(strContentVO);
+        }else if("输血后效果评价".equals(modelName)){
+            bStrBloodResultFacade.dealData(strContentVO);
+        }else if("输血/血制品病程记录".equals(modelName)){
+            bStrBloodTransfusionFacade.dealData(strContentVO);
+        }else if("转入记录".equals(modelName)){
+            bStrTransferInNoteFacade.dealData(strContentVO);
+        }else if("转出记录".equals(modelName)){
+            bStrTransferOutNoteFacade.dealData(strContentVO);
+        }else if("病危通知书".equals(modelName)){
+            bStrIllCriticallyFacade.dealData(strContentVO);
+        }else if("病重通知书".equals(modelName)){
+            bStrIllSeriouslFacade.dealData(strContentVO);
+        }else if("疑难病例讨论记录".equals(modelName)){
+            bStrDifficultCaseFacade.dealData(strContentVO);
+        }else if("死亡记录".equals(modelName)){
+            bStrDeathNoteFacade.dealData(strContentVO);
+        }else if("死亡病例讨论记录".equals(modelName)){
+            bStrDeathDiscussionFacade.dealData(strContentVO);
+        }else if("查房记录".equals(modelName)){
+            bStrWardRecordFacade.dealData(strContentVO);
+        }else if("术后首次病程及谈话记录".equals(modelName)){
+            bStrOperativeFirstRecordFacade.dealData(strContentVO);
+        }else if("术前讨论、术前小结".equals(modelName)){
+            bStrPreoperativeDiscussionFacade.dealData(strContentVO);
+        }else if("手术记录".equals(modelName)){
+            bStrOperativeNoteFacade.dealData(strContentVO);
+        }else if("抢救记录".equals(modelName)){
+            bStrRescueNoteFacade.dealData(strContentVO);
+        }else if("危急值记录".equals(modelName)){
+            bStrCrisisNoteFacade.dealData(strContentVO);
+        }else if("出院小结".equals(modelName)){
+            bStrLeaveHospitalFacade.dealData(strContentVO);
+        }else if("会诊申请单".equals(modelName)){
+            bStrConsultationApplyFacade.dealData(strContentVO);
+        }else if("会诊结果单".equals(modelName)){
+            bStrConsultationResultFacade.dealData(strContentVO);
+        }else if("会诊单".equals(modelName)){
+            bStrConsultationNoteFacade.dealData(strContentVO);
+        }else if ("会诊记录".equals(modelName)){
+            bStrConsultationRecordFacade.dealData(strContentVO);
+        } else if("阶段小结".equals(modelName)){
+            bStrPeriodConclusionFacade.dealData(strContentVO);
+        }
+    }
+
     /**
      * 数据解析
      * @param modelName
@@ -61,53 +147,53 @@ public class ColumnFacade extends ColumnServiceImpl {
      * @param hospitalId
      */
     private void analysisData(String modelName,Map<String, Object> entityMap,Long hospitalId,String columnMap){
-        try {
+        try{
             if("入院记录".equals(modelName)){
-                aStrAdmissionNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrAdmissionNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("首次病程录".equals(modelName)){
-                aStrFirstRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrFirstRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("输血后效果评价".equals(modelName)){
-                aStrBloodResultFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrBloodResultFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("输血/血制品病程记录".equals(modelName)){
-                aStrBloodTransfusionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrBloodTransfusionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("转入记录".equals(modelName)){
-                aStrTransferInNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrTransferInNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("转出记录".equals(modelName)){
-                aStrTransferOutNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrTransferOutNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("病危通知书".equals(modelName)){
-                aStrIllCriticallyFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrIllCriticallyFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("病重通知书".equals(modelName)){
-                aStrIllSeriouslFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrIllSeriouslFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("疑难病例讨论记录".equals(modelName)){
-                aStrDifficultCaseFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrDifficultCaseFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("死亡记录".equals(modelName)){
-                aStrDeathNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrDeathNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("死亡病例讨论记录".equals(modelName)){
-                aStrDeathDiscussionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrDeathDiscussionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("查房记录".equals(modelName)){
-                aStrWardRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrWardRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("术后首次病程及谈话记录".equals(modelName)){
-                aStrOperativeFirstRecord.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrOperativeFirstRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("术前讨论、术前小结".equals(modelName)){
-                aStrPreoperativeDiscussionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrPreoperativeDiscussionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("手术记录".equals(modelName)){
-                aStrOperativeNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrOperativeNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("抢救记录".equals(modelName)){
-                aStrRescueNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrRescueNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("危急值记录".equals(modelName)){
-                aStrCrisisNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrCrisisNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("出院小结".equals(modelName)){
-                aStrLeaveHospitalFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrLeaveHospitalFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("会诊申请单".equals(modelName)){
-                aStrConsultationApplyFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrConsultationApplyFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("会诊结果单".equals(modelName)){
-                aStrConsultationResultFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrConsultationResultFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if("会诊单".equals(modelName)){
-                aStrConsultationNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrConsultationNoteFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }else if ("会诊记录".equals(modelName)){
-                aStrConsultationRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrConsultationRecordFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             } else if("阶段小结".equals(modelName)){
-                aStrPeriodConclusionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
+                bStrPeriodConclusionFacade.dealData(columnMap,entityMap,Long.valueOf(hospitalId));
             }
             log.info(modelName+"---- 解析完成!");
         }catch (Exception e){
@@ -117,49 +203,49 @@ public class ColumnFacade extends ColumnServiceImpl {
     }
 
     @Autowired
-    private AStrAdmissionNoteFacade aStrAdmissionNoteFacade;
+    private BStrAdmissionNoteFacade bStrAdmissionNoteFacade;
     @Autowired
-    private AStrFirstRecordFacade aStrFirstRecordFacade;
+    private BStrFirstRecordFacade bStrFirstRecordFacade;
     @Autowired
-    private AStrPeriodConclusionFacade aStrPeriodConclusionFacade;
+    private BStrPeriodConclusionFacade bStrPeriodConclusionFacade;
     @Autowired
-    private AStrBloodResultFacade aStrBloodResultFacade;
+    private BStrBloodResultFacade bStrBloodResultFacade;
     @Autowired
-    private AStrBloodTransfusionFacade aStrBloodTransfusionFacade;
+    private BStrBloodTransfusionFacade bStrBloodTransfusionFacade;
     @Autowired
-    private AStrTransferInNoteFacade aStrTransferInNoteFacade;
+    private BStrTransferInNoteFacade bStrTransferInNoteFacade;
     @Autowired
-    private AStrTransferOutNoteFacade aStrTransferOutNoteFacade;
+    private BStrTransferOutNoteFacade bStrTransferOutNoteFacade;
     @Autowired
-    private AStrIllSeriouslFacade aStrIllSeriouslFacade;
+    private BStrIllSeriouslFacade bStrIllSeriouslFacade;
     @Autowired
-    private AStrIllCriticallyFacade aStrIllCriticallyFacade;
+    private BStrIllCriticallyFacade bStrIllCriticallyFacade;
     @Autowired
-    private AStrDifficultCaseFacade aStrDifficultCaseFacade;
+    private BStrDifficultCaseFacade bStrDifficultCaseFacade;
     @Autowired
-    private AStrDeathNoteFacade aStrDeathNoteFacade;
+    private BStrDeathNoteFacade bStrDeathNoteFacade;
     @Autowired
-    private AStrDeathDiscussionFacade aStrDeathDiscussionFacade;
+    private BStrDeathDiscussionFacade bStrDeathDiscussionFacade;
     @Autowired
-    private AStrWardRecordFacade aStrWardRecordFacade;
+    private BStrWardRecordFacade bStrWardRecordFacade;
     @Autowired
-    private AStrOperativeFirstRecord aStrOperativeFirstRecord;
+    private BStrOperativeFirstRecordFacade bStrOperativeFirstRecordFacade;
     @Autowired
-    private AStrPreoperativeDiscussionFacade aStrPreoperativeDiscussionFacade;
+    private BStrPreoperativeDiscussionFacade bStrPreoperativeDiscussionFacade;
     @Autowired
-    private AStrOperativeNoteFacade aStrOperativeNoteFacade;
+    private BStrOperativeNoteFacade bStrOperativeNoteFacade;
     @Autowired
-    private AStrRescueNoteFacade aStrRescueNoteFacade;
+    private BStrRescueNoteFacade bStrRescueNoteFacade;
     @Autowired
-    private AStrCrisisNoteFacade aStrCrisisNoteFacade;
+    private BStrCrisisNoteFacade bStrCrisisNoteFacade;
     @Autowired
-    private AStrLeaveHospitalFacade aStrLeaveHospitalFacade;
+    private BStrLeaveHospitalFacade bStrLeaveHospitalFacade;
     @Autowired
-    private AStrConsultationApplyFacade aStrConsultationApplyFacade;
+    private BStrConsultationApplyFacade bStrConsultationApplyFacade;
     @Autowired
-    private AStrConsultationResultFacade aStrConsultationResultFacade;
+    private BStrConsultationResultFacade bStrConsultationResultFacade;
     @Autowired
-    private AStrConsultationNoteFacade aStrConsultationNoteFacade;
+    private BStrConsultationNoteFacade bStrConsultationNoteFacade;
     @Autowired
-    private AStrConsultationRecordFacade aStrConsultationRecordFacade;
+    private BStrConsultationRecordFacade bStrConsultationRecordFacade;
 }

+ 0 - 152
src/main/java/com/diagbot/facade/str/AStrAdmissionNoteFacade.java

@@ -1,152 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrAdmissionNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrAdmissionNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrAdmissionNoteVO;
-import com.diagbot.vo.str.StrAdmissionNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strAdmissionNoteServiceImpl")
-    private StrAdmissionNoteServiceImpl strAdmissionNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh() {
-        List<ColumnZhAndChDTO> list = this.baseMapper.getColumnZhAndCh();
-        list.forEach(s -> {
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap = EntityUtil.makeMapWithKeyValue(list, "ch", "en");
-        Boolean flag = columnFacade.createColumn(columnMap, "strAdmissionNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strAdmissionNote");
-        if (!flag) {
-            return;
-        }
-    }
-
-    //入院记录
-    public void dealData(String columnMap, Map<String, Object> entityMap, Long hospitalId) {
-        StrAdmissionNote strAdmissionNote = new StrAdmissionNote();
-        try {
-            AStrAdmissionNoteVO strAdmissionNoteVO = (AStrAdmissionNoteVO) MapUtil.mapToObject(entityMap, AStrAdmissionNoteVO.class);
-            BeanUtils.copyProperties(strAdmissionNoteVO, strAdmissionNote);
-            strAdmissionNote.setHospitalId(hospitalId);//医院编码
-
-            strAdmissionNote.setAuditDate(DateUtil.parseDateTime(strAdmissionNoteVO.getAuditDate()));//审核时间
-            strAdmissionNote.setRecDate(DateUtil.parseDateTime(strAdmissionNoteVO.getRecDate()));//记录时间
-            strAdmissionNote.setBehospitalDate(DateUtil.parseDateTime(strAdmissionNoteVO.getBehospitalDate()));//入院日期
-            strAdmissionNote.setBirthday(DateUtil.parseDate(strAdmissionNoteVO.getBirthday()));//出生日期
-            strAdmissionNote.setRecordDate(DateUtil.parseDateTime(strAdmissionNoteVO.getRecordDate()));//病历日期
-
-            strAdmissionNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if (isExist(strAdmissionNote)) {
-                strAdmissionNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strAdmissionNote);
-            } else {
-                strAdmissionNote.setGmtModified(new Date());//记录修改时间
-                this.update(strAdmissionNote, new QueryWrapper<StrAdmissionNote>()
-                        .eq("rec_id", strAdmissionNote.getRecId())
-                        .eq("hospital_id", strAdmissionNote.getHospitalId())
-                        .eq("behospital_code", strAdmissionNote.getBehospitalCode()));
-            }
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("入院记录", strAdmissionNote.getRecId(), JSON.toJSONString(entityMap), "", e.getMessage());
-        }
-    }
-
-    public Boolean isExist(StrAdmissionNote strAdmissionNote) {
-        Boolean flag = true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrAdmissionNote>()
-                .eq("rec_id", strAdmissionNote.getRecId())
-                .eq("hospital_id", strAdmissionNote.getHospitalId())
-                .eq("behospital_code", strAdmissionNote.getBehospitalCode()));
-        if (count > 0) {
-            flag = false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrAdmissionNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrAdmissionNoteVO strAdmissionNoteVO:list) {
-                if("".equals(strAdmissionNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strAdmissionNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strAdmissionNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrAdmissionNote> strAdmissionNoteList=Lists.newArrayList();
-            strAdmissionNoteList=BeanUtil.listCopyTo(list,StrAdmissionNote.class);
-            execute(strAdmissionNoteList);
-
-            return RespDTO.onSuc(strAdmissionNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrAdmissionNote> list){
-        try {
-            List<StrAdmissionNote> addE = Lists.newLinkedList();
-            List<StrAdmissionNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrAdmissionNote strAdmissionNote = this.getOne(new QueryWrapper<StrAdmissionNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strAdmissionNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strAdmissionNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-
-}

+ 0 - 162
src/main/java/com/diagbot/facade/str/AStrBloodResultFacade.java

@@ -1,162 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrBloodResult;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrBloodResultServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrBloodResultVO;
-import com.diagbot.vo.str.StrBloodResultVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description:输血后效果评价-业务类
- * @Author:liuqq
- * @time: ${DATE} ${TIME}
- **/
-@Component
-public class AStrBloodResultFacade extends StrBloodResultServiceImpl {
-
-    @Autowired
-    @Qualifier("strBloodResultServiceImpl")
-    private StrBloodResultServiceImpl strBloodResultService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strBloodResult");
-        if(!flag){
-            return;
-        }
-        //Map<String, String> map=columnFacade.getColumn("strBloodResult");
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrBloodResult strBloodResult=new StrBloodResult();
-        try {
-            AStrBloodResultVO strBloodResultVO=(AStrBloodResultVO) MapUtil.mapToObject(entityMap, AStrBloodResultVO.class);
-            BeanUtils.copyProperties(strBloodResultVO,strBloodResult);
-            strBloodResult.setHospitalId(hospitalId);//医院编码
-            strBloodResult.setAuditDate(DateUtil.parseDateTime(strBloodResultVO.getAuditDate()));//审核时间
-            strBloodResult.setRecDate(DateUtil.parseDateTime(strBloodResultVO.getRecDate()));//记录时间
-            strBloodResult.setRecordDate(DateUtil.parseDateTime(strBloodResultVO.getRecordDate()));//病历日期
-
-            strBloodResult.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strBloodResult)){
-                strBloodResult.setGmtCreate(new Date());//记录创建时间
-                this.save(strBloodResult);
-            }else{
-                strBloodResult.setGmtModified(new Date());//记录修改时间
-                this.update(strBloodResult,new QueryWrapper<StrBloodResult>()
-                        .eq("rec_id", strBloodResult.getRecId())
-                        .eq("hospital_id", strBloodResult.getHospitalId())
-                        .eq("behospital_code", strBloodResult.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("输血效果评价",strBloodResult.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    /**
-     * @Description: 是否存在
-     * @Author:liuqq
-     * @time: ${DATE} ${TIME}
-     **/
-    public Boolean isExist(StrBloodResult strBloodResult){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrBloodResult>()
-                .eq("rec_id", strBloodResult.getRecId())
-                .eq("hospital_id", strBloodResult.getHospitalId())
-                .eq("behospital_code", strBloodResult.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    /**
-     * @Description:数据处理
-     * @Author:liuqq
-     * @time: ${DATE} ${TIME}
-     **/
-    public RespDTO execDealData(List<StrBloodResultVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrBloodResultVO strBloodResultVO:list) {
-                if("".equals(strBloodResultVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strBloodResultVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strBloodResultVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrBloodResult> strBloodResultList= Lists.newArrayList();
-            strBloodResultList= BeanUtil.listCopyTo(list,StrBloodResult.class);
-            execute(strBloodResultList);
-
-            return RespDTO.onSuc(strBloodResultList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrBloodResult> list){
-        try {
-            List<StrBloodResult> addE = Lists.newLinkedList();
-            List<StrBloodResult> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrBloodResult strBloodResult = this.getOne(new QueryWrapper<StrBloodResult>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strBloodResult != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strBloodResultService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-输血后效果评价","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 154
src/main/java/com/diagbot/facade/str/AStrConsultationApplyFacade.java

@@ -1,154 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrConsultationApply;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrConsultationApplyServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrConsultationApplyVO;
-import com.diagbot.vo.str.StrConsultationApplyVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrConsultationApplyFacade extends StrConsultationApplyServiceImpl {
-
-    @Autowired
-    @Qualifier("strConsultationApplyServiceImpl")
-    private StrConsultationApplyServiceImpl strConsultationApplyService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationApply");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //会诊申请单
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrConsultationApply strConsultationApply=new StrConsultationApply();
-        try {
-            AStrConsultationApplyVO strConsultationApplyVO=(AStrConsultationApplyVO) MapUtil.mapToObject(entityMap, AStrConsultationApplyVO.class);
-            BeanUtils.copyProperties(strConsultationApplyVO,strConsultationApply);
-            strConsultationApply.setHospitalId(hospitalId);//医院编码
-
-            strConsultationApply.setAuditDate(DateUtil.parseDateTime(strConsultationApplyVO.getAuditDate()));//审核时间
-            strConsultationApply.setRecDate(DateUtil.parseDateTime(strConsultationApplyVO.getRecDate()));//记录时间
-            strConsultationApply.setBehospitalDate(DateUtil.parseDateTime(strConsultationApplyVO.getBehospitalDate()));//入院日期
-            strConsultationApply.setRecordDate(DateUtil.parseDateTime(strConsultationApplyVO.getRecordDate()));//病历日期
-            strConsultationApply.setApplyDate(DateUtil.parseDateTime(strConsultationApplyVO.getApplyDate()));//申请日期
-            strConsultationApply.setConsultationDate(DateUtil.parseDateTime(strConsultationApplyVO.getConsultationDate()));//会诊时间
-            strConsultationApply.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strConsultationApply)){
-                strConsultationApply.setGmtCreate(new Date());//记录创建时间
-                this.save(strConsultationApply);
-            }else{
-                strConsultationApply.setGmtModified(new Date());//记录修改时间
-                this.update(strConsultationApply,new QueryWrapper<StrConsultationApply>()
-                        .eq("rec_id", strConsultationApply.getRecId())
-                        .eq("hospital_id", strConsultationApply.getHospitalId())
-                        .eq("behospital_code", strConsultationApply.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊申请单",strConsultationApply.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrConsultationApply strConsultationApply){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationApply>()
-                .eq("rec_id", strConsultationApply.getRecId())
-                .eq("hospital_id", strConsultationApply.getHospitalId())
-                .eq("behospital_code", strConsultationApply.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrConsultationApplyVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrConsultationApplyVO strConsultationApplyVO:list) {
-                if("".equals(strConsultationApplyVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strConsultationApplyVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strConsultationApplyVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrConsultationApply> strConsultationApplyList= Lists.newArrayList();
-            strConsultationApplyList= BeanUtil.listCopyTo(list,StrConsultationApply.class);
-            execute(strConsultationApplyList);
-
-            return RespDTO.onSuc(strConsultationApplyList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrConsultationApply> list){
-        try {
-            List<StrConsultationApply> addE = Lists.newLinkedList();
-            List<StrConsultationApply> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrConsultationApply strConsultationApply = this.getOne(new QueryWrapper<StrConsultationApply>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strConsultationApply != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strConsultationApplyService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊申请单","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-
-}

+ 0 - 155
src/main/java/com/diagbot/facade/str/AStrConsultationNoteFacade.java

@@ -1,155 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrConsultationNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrConsultationNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrConsultationNoteVO;
-import com.diagbot.vo.str.StrConsultationNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrConsultationNoteFacade extends StrConsultationNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strConsultationNoteServiceImpl")
-    private StrConsultationNoteServiceImpl strConsultationNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap=EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //会诊单(申请和结果)
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrConsultationNote strConsultationNote=new StrConsultationNote();
-        try {
-            AStrConsultationNoteVO strConsultationNoteVO=(AStrConsultationNoteVO) MapUtil.mapToObject(entityMap, AStrConsultationNoteVO.class);
-            BeanUtils.copyProperties(strConsultationNoteVO,strConsultationNote);
-            strConsultationNote.setHospitalId(hospitalId);//医院编码
-
-            strConsultationNote.setAuditDate(DateUtil.parseDateTime(strConsultationNoteVO.getAuditDate()));//审核时间
-            strConsultationNote.setRecDate(DateUtil.parseDateTime(strConsultationNoteVO.getRecDate()));//记录时间
-            strConsultationNote.setBehospitalDate(DateUtil.parseDateTime(strConsultationNoteVO.getBehospitalDate()));//入院日期
-            strConsultationNote.setApplyDate(DateUtil.parseDate(strConsultationNoteVO.getApplyDate()));//申请日期
-            strConsultationNote.setRecordDate(DateUtil.parseDateTime(strConsultationNoteVO.getRecordDate()));//病历日期
-            strConsultationNote.setConsultationDate(DateUtil.parseDateTime(strConsultationNoteVO.getConsultationDate()));//会诊时间
-
-            strConsultationNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strConsultationNote)){
-                strConsultationNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strConsultationNote);
-            }else{
-                strConsultationNote.setGmtModified(new Date());//记录修改时间
-                this.update(strConsultationNote,new QueryWrapper<StrConsultationNote>()
-                        .eq("rec_id", strConsultationNote.getRecId())
-                        .eq("hospital_id", strConsultationNote.getHospitalId())
-                        .eq("behospital_code", strConsultationNote.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊单(申请和结果)",strConsultationNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrConsultationNote strConsultationNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationNote>()
-                .eq("rec_id", strConsultationNote.getRecId())
-                .eq("hospital_id", strConsultationNote.getHospitalId())
-                .eq("behospital_code", strConsultationNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrConsultationNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrConsultationNoteVO strConsultationNoteVO:list) {
-                if("".equals(strConsultationNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strConsultationNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strConsultationNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrConsultationNote> strConsultationNoteList= Lists.newArrayList();
-            strConsultationNoteList= BeanUtil.listCopyTo(list,StrConsultationNote.class);
-            execute(strConsultationNoteList);
-
-            return RespDTO.onSuc(strConsultationNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrConsultationNote> list){
-        try {
-            List<StrConsultationNote> addE = Lists.newLinkedList();
-            List<StrConsultationNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrConsultationNote strConsultationNote = this.getOne(new QueryWrapper<StrConsultationNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strConsultationNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strConsultationNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊申请单","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-
-}

+ 0 - 153
src/main/java/com/diagbot/facade/str/AStrConsultationRecordFacade.java

@@ -1,153 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrConsultationRecord;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrConsultationRecordServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.AStrConsultationRecordVO;
-import com.diagbot.vo.str.StrConsultationRecordVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-@Component
-public class AStrConsultationRecordFacade extends StrConsultationRecordServiceImpl {
-
-    @Autowired
-    @Qualifier("strConsultationRecordServiceImpl")
-    private StrConsultationRecordServiceImpl strConsultationRecordService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationRecord");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationRecord");
-        if(!flag){
-            return;
-        }
-    }
-
-    //会诊记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrConsultationRecord strConsultationRecord=new StrConsultationRecord();
-        try {
-            AStrConsultationRecordVO AStrConsultationRecordVO=(AStrConsultationRecordVO) MapUtil.mapToObject(entityMap, AStrConsultationRecordVO.class);
-            BeanUtils.copyProperties(AStrConsultationRecordVO,strConsultationRecord);
-            strConsultationRecord.setHospitalId(hospitalId);//医院编码
-
-            strConsultationRecord.setRecordDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getRecordDate()));//病历日期recordDate
-            strConsultationRecord.setBehospitalDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getBehospitalDate()));//入院日期behospital_date
-            strConsultationRecord.setApplyDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getApplyDate()));//申请日期apply_date
-            strConsultationRecord.setConsultationDate(DateUtil.parseDate(AStrConsultationRecordVO.getConsultationArriveDate()));//会诊时间consultation_date
-            strConsultationRecord.setRecDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getRecDate()));//记录时间rec_date
-            strConsultationRecord.setAuditDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getAuditDate()));//审核时间audit_date
-
-            strConsultationRecord.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strConsultationRecord)){
-                strConsultationRecord.setGmtCreate(new Date());//记录创建时间
-                this.save(strConsultationRecord);
-            }else{
-                strConsultationRecord.setGmtModified(new Date());//记录修改时间
-                this.update(strConsultationRecord,new QueryWrapper<StrConsultationRecord>()
-                        .eq("rec_id", strConsultationRecord.getRecId())
-                        .eq("hospital_id", strConsultationRecord.getHospitalId())
-                        .eq("behospital_code", strConsultationRecord.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊记录)",strConsultationRecord.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrConsultationRecord strConsultationRecord){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationRecord>()
-                .eq("rec_id", strConsultationRecord.getRecId())
-                .eq("hospital_id", strConsultationRecord.getHospitalId())
-                .eq("behospital_code", strConsultationRecord.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrConsultationRecordVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrConsultationRecordVO strConsultationRecordVO:list) {
-                if("".equals(strConsultationRecordVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strConsultationRecordVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strConsultationRecordVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrConsultationRecord> strConsultationRecordList= Lists.newArrayList();
-            strConsultationRecordList= BeanUtil.listCopyTo(list,StrConsultationRecord.class);
-            execute(strConsultationRecordList);
-
-            return RespDTO.onSuc(strConsultationRecordList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrConsultationRecord> list){
-        try {
-            List<StrConsultationRecord> addE = Lists.newLinkedList();
-            List<StrConsultationRecord> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrConsultationRecord strConsultationRecord = this.getOne(new QueryWrapper<StrConsultationRecord>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strConsultationRecord != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strConsultationRecordService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 159
src/main/java/com/diagbot/facade/str/AStrConsultationResultFacade.java

@@ -1,159 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrConsultationResult;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrConsultationResultServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrConsultationResultVO;
-import com.diagbot.vo.str.StrConsultationResultVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description:会诊结果单-业务类
- * @Author:liuqq
- * @time: ${DATE} ${TIME}
- **/
-@Component
-public class AStrConsultationResultFacade extends StrConsultationResultServiceImpl {
-
-    @Autowired
-    @Qualifier("strConsultationResultServiceImpl")
-    private StrConsultationResultServiceImpl strConsultationResultService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationResult");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //会诊结果单
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrConsultationResult strConsultationResult=new StrConsultationResult();
-        try {
-            AStrConsultationResultVO strConsultationResultVO=(AStrConsultationResultVO) MapUtil.mapToObject(entityMap, AStrConsultationResultVO.class);
-            BeanUtils.copyProperties(strConsultationResultVO,strConsultationResult);
-            strConsultationResult.setHospitalId(hospitalId);//医院编码
-
-            strConsultationResult.setAuditDate(DateUtil.parseDateTime(strConsultationResultVO.getAuditDate()));//审核时间
-            strConsultationResult.setRecDate(DateUtil.parseDateTime(strConsultationResultVO.getRecDate()));//记录时间
-            strConsultationResult.setBehospitalDate(DateUtil.parseDateTime(strConsultationResultVO.getBehospitalDate()));//入院日期
-            strConsultationResult.setApplyDate(DateUtil.parseDate(strConsultationResultVO.getApplyDate()));//申请时间
-            strConsultationResult.setRecordDate(DateUtil.parseDateTime(strConsultationResultVO.getRecordDate()));//病历日期
-            strConsultationResult.setConsultationArriveDate(DateUtil.parseDateTime(strConsultationResultVO.getConsultationArriveDate()));//会诊到达时间
-
-            strConsultationResult.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strConsultationResult)){
-                strConsultationResult.setGmtCreate(new Date());//记录创建时间
-                this.save(strConsultationResult);
-            }else{
-                strConsultationResult.setGmtModified(new Date());//记录修改时间
-                this.update(strConsultationResult,new QueryWrapper<StrConsultationResult>()
-                        .eq("rec_id", strConsultationResult.getRecId())
-                        .eq("hospital_id", strConsultationResult.getHospitalId())
-                        .eq("behospital_code", strConsultationResult.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊结果单",strConsultationResult.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrConsultationResult strConsultationResult){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationResult>()
-                .eq("rec_id", strConsultationResult.getRecId())
-                .eq("hospital_id", strConsultationResult.getHospitalId())
-                .eq("behospital_code", strConsultationResult.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrConsultationResultVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrConsultationResultVO strConsultationResultVO:list) {
-                if("".equals(strConsultationResultVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strConsultationResultVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strConsultationResultVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrConsultationResult> strConsultationResultList= Lists.newArrayList();
-            strConsultationResultList= BeanUtil.listCopyTo(list,StrConsultationResult.class);
-            execute(strConsultationResultList);
-
-            return RespDTO.onSuc(strConsultationResultList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrConsultationResult> list){
-        try {
-            List<StrConsultationResult> addE = Lists.newLinkedList();
-            List<StrConsultationResult> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrConsultationResult strConsultationResult = this.getOne(new QueryWrapper<StrConsultationResult>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strConsultationResult != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strConsultationResultService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊结果单","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 150
src/main/java/com/diagbot/facade/str/AStrCrisisNoteFacade.java

@@ -1,150 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrCrisisNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrCrisisNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrCrisisNoteVO;
-import com.diagbot.vo.str.StrCrisisNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrCrisisNoteFacade extends StrCrisisNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strCrisisNoteServiceImpl")
-    private StrCrisisNoteServiceImpl strCrisisNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strCrisisNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrCrisisNote strCrisisNote=new StrCrisisNote();
-        try {
-            AStrCrisisNoteVO strCrisisNoteVO=(AStrCrisisNoteVO) MapUtil.mapToObject(entityMap, AStrCrisisNoteVO.class);
-            BeanUtils.copyProperties(strCrisisNoteVO,strCrisisNote);
-            strCrisisNote.setHospitalId(hospitalId);//医院编码
-
-            strCrisisNote.setAuditDate(DateUtil.parseDateTime(strCrisisNoteVO.getAuditDate()));//审核时间
-            strCrisisNote.setRecDate(DateUtil.parseDateTime(strCrisisNoteVO.getRecDate()));//记录时间
-            strCrisisNote.setRecieveDate(DateUtil.parseDateTime(strCrisisNoteVO.getRecieveDate()));//开始时间
-            strCrisisNote.setAuditDate(DateUtil.parseDate(strCrisisNoteVO.getAuditDate()));//结束时间
-            strCrisisNote.setRecordDate(DateUtil.parseDateTime(strCrisisNoteVO.getRecordDate()));//病历日期
-
-            strCrisisNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strCrisisNote)){
-                strCrisisNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strCrisisNote);
-            }else{
-                strCrisisNote.setGmtModified(new Date());//记录修改时间
-                this.update(strCrisisNote,new QueryWrapper<StrCrisisNote>()
-                        .eq("rec_id", strCrisisNote.getRecId())
-                        .eq("hospital_id", strCrisisNote.getHospitalId())
-                        .eq("behospital_code", strCrisisNote.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("危急值记录",strCrisisNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrCrisisNote strCrisisNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrCrisisNote>()
-                .eq("rec_id", strCrisisNote.getRecId())
-                .eq("hospital_id", strCrisisNote.getHospitalId())
-                .eq("behospital_code", strCrisisNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrCrisisNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrCrisisNoteVO strCrisisNoteVO:list) {
-                if("".equals(strCrisisNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strCrisisNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strCrisisNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrCrisisNote> strCrisisNoteList= Lists.newArrayList();
-            strCrisisNoteList= BeanUtil.listCopyTo(list,StrCrisisNote.class);
-            execute(strCrisisNoteList);
-
-            return RespDTO.onSuc(strCrisisNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrCrisisNote> list){
-        try {
-            List<StrCrisisNote> addE = Lists.newLinkedList();
-            List<StrCrisisNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrCrisisNote strCrisisNote = this.getOne(new QueryWrapper<StrCrisisNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strCrisisNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strCrisisNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-危急值记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 152
src/main/java/com/diagbot/facade/str/AStrDeathDiscussionFacade.java

@@ -1,152 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrDeathDiscussion;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrDeathDiscussionServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrDeathDiscussionVO;
-import com.diagbot.vo.str.StrDeathDiscussionVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrDeathDiscussionFacade extends StrDeathDiscussionServiceImpl {
-    @Autowired
-    @Qualifier("strDeathDiscussionServiceImpl")
-    private StrDeathDiscussionServiceImpl strDeathDiscussionService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strDeathDiscussion");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //死亡病例讨论记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrDeathDiscussion strDeathDiscussion=new StrDeathDiscussion();
-        try {
-            AStrDeathDiscussionVO strDeathDiscussionVO=(AStrDeathDiscussionVO) MapUtil.mapToObject(entityMap, AStrDeathDiscussionVO.class);
-            BeanUtils.copyProperties(strDeathDiscussionVO,strDeathDiscussion);
-            strDeathDiscussion.setHospitalId(hospitalId);//医院编码
-
-            strDeathDiscussion.setAuditDate(DateUtil.parseDateTime(strDeathDiscussionVO.getAuditDate()));//审核时间
-            strDeathDiscussion.setRecDate(DateUtil.parseDateTime(strDeathDiscussionVO.getRecDate()));//记录时间
-            strDeathDiscussion.setDeathDate(DateUtil.parseDateTime(strDeathDiscussionVO.getDeathDate()));//死亡时间
-            strDeathDiscussion.setDiscussDate(DateUtil.parseDate(strDeathDiscussionVO.getDiscussDate()));//讨论时间
-            strDeathDiscussion.setRecordDate(DateUtil.parseDateTime(strDeathDiscussionVO.getRecordDate()));//病历日期
-
-            strDeathDiscussion.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strDeathDiscussion)){
-                strDeathDiscussion.setGmtCreate(new Date());//记录创建时间
-                this.save(strDeathDiscussion);
-            }else{
-                strDeathDiscussion.setGmtModified(new Date());//记录修改时间
-                this.update(strDeathDiscussion,new QueryWrapper<StrDeathDiscussion>()
-                        .eq("rec_id", strDeathDiscussion.getRecId())
-                        .eq("hospital_id", strDeathDiscussion.getHospitalId())
-                        .eq("behospital_code", strDeathDiscussion.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("死亡病例讨论记录",strDeathDiscussion.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrDeathDiscussion strDeathDiscussion){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrDeathDiscussion>()
-                .eq("rec_id", strDeathDiscussion.getRecId())
-                .eq("hospital_id", strDeathDiscussion.getHospitalId())
-                .eq("behospital_code", strDeathDiscussion.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrDeathDiscussionVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrDeathDiscussionVO strDeathDiscussionVO:list) {
-                if("".equals(strDeathDiscussionVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strDeathDiscussionVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strDeathDiscussionVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrDeathDiscussion> strDeathDiscussionList= Lists.newArrayList();
-            strDeathDiscussionList= BeanUtil.listCopyTo(list,StrDeathDiscussion.class);
-            execute(strDeathDiscussionList);
-
-            return RespDTO.onSuc(strDeathDiscussionList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrDeathDiscussion> list){
-        try {
-            List<StrDeathDiscussion> addE = Lists.newLinkedList();
-            List<StrDeathDiscussion> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrDeathDiscussion strDeathDiscussion = this.getOne(new QueryWrapper<StrDeathDiscussion>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strDeathDiscussion != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strDeathDiscussionService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡病例讨论记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 153
src/main/java/com/diagbot/facade/str/AStrDeathNoteFacade.java

@@ -1,153 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrDeathNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrDeathNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrDeathNoteVO;
-import com.diagbot.vo.str.StrDeathNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrDeathNoteFacade extends StrDeathNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strDeathNoteServiceImpl")
-    private StrDeathNoteServiceImpl strDeathNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strDeathNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //死亡记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrDeathNote strDeathNote=new StrDeathNote();
-        try {
-            AStrDeathNoteVO strDeathNoteVO=(AStrDeathNoteVO) MapUtil.mapToObject(entityMap, AStrDeathNoteVO.class);
-            BeanUtils.copyProperties(strDeathNoteVO,strDeathNote);
-            strDeathNote.setHospitalId(hospitalId);//医院编码
-
-            strDeathNote.setAuditDate(DateUtil.parseDateTime(strDeathNoteVO.getAuditDate()));//审核时间
-            strDeathNote.setRecDate(DateUtil.parseDateTime(strDeathNoteVO.getRecDate()));//记录时间
-            strDeathNote.setBehospitalDate(DateUtil.parseDateTime(strDeathNoteVO.getBehospitalDate()));//入院日期
-            strDeathNote.setDeathDate(DateUtil.parseDate(strDeathNoteVO.getDeathDate()));//死亡日期
-            strDeathNote.setRecordDate(DateUtil.parseDateTime(strDeathNoteVO.getRecordDate()));//病历日期
-
-            strDeathNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strDeathNote)){
-                strDeathNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strDeathNote);
-            }else{
-                strDeathNote.setGmtModified(new Date());//记录修改时间
-                this.update(strDeathNote,new QueryWrapper<StrDeathNote>()
-                        .eq("rec_id", strDeathNote.getRecId())
-                        .eq("hospital_id", strDeathNote.getHospitalId())
-                        .eq("behospital_code", strDeathNote.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("死亡记录", strDeathNote.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrDeathNote strDeathNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrDeathNote>()
-                .eq("rec_id", strDeathNote.getRecId())
-                .eq("hospital_id", strDeathNote.getHospitalId())
-                .eq("behospital_code", strDeathNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrDeathNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrDeathNoteVO strDeathNoteVO:list) {
-                if("".equals(strDeathNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strDeathNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strDeathNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrDeathNote> strDeathNoteList= Lists.newArrayList();
-            strDeathNoteList= BeanUtil.listCopyTo(list,StrDeathNote.class);
-            execute(strDeathNoteList);
-
-            return RespDTO.onSuc(strDeathNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrDeathNote> list){
-        try {
-            List<StrDeathNote> addE = Lists.newLinkedList();
-            List<StrDeathNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrDeathNote strDeathNote = this.getOne(new QueryWrapper<StrDeathNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strDeathNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strDeathNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 150
src/main/java/com/diagbot/facade/str/AStrDifficultCaseFacade.java

@@ -1,150 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrDifficultCase;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrDifficultCaseServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrDifficultCaseVO;
-import com.diagbot.vo.str.StrDifficultCaseVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrDifficultCaseFacade extends StrDifficultCaseServiceImpl{
-
-    @Autowired
-    @Qualifier("strDifficultCaseServiceImpl")
-    private StrDifficultCaseServiceImpl strDifficultCaseService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strDifficultCase");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrDifficultCase medDifficult=new StrDifficultCase();
-        try {
-            AStrDifficultCaseVO medDifficultVO=(AStrDifficultCaseVO) MapUtil.mapToObject(entityMap, AStrDifficultCaseVO.class);
-            BeanUtils.copyProperties(medDifficultVO,medDifficult);
-            medDifficult.setHospitalId(hospitalId);//医院编码
-            medDifficult.setRecDate(DateUtil.parseDateTime(medDifficultVO.getRecDate()));
-            medDifficult.setAuditDate(DateUtil.parseDateTime(medDifficultVO.getAuditDate()));
-            medDifficult.setDiscussDate(DateUtil.parseDateTime(medDifficultVO.getDiscussDate()));
-            medDifficult.setRecordDate(DateUtil.parseDateTime(medDifficultVO.getRecordDate()));//病历日期
-
-            medDifficult.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(medDifficult)){
-                medDifficult.setGmtCreate(new Date());//记录创建时间
-                this.save(medDifficult);
-            }else{
-                medDifficult.setGmtModified(new Date());//记录修改时间
-                this.update(medDifficult,new QueryWrapper<StrDifficultCase>()
-                        .eq("rec_id", medDifficult.getRecId())
-                        .eq("hospital_id", medDifficult.getHospitalId())
-                        .eq("behospital_code", medDifficult.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("疑难病例讨论记录",medDifficult.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrDifficultCase medDifficult){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrDifficultCase>()
-                .eq("rec_id", medDifficult.getRecId())
-                .eq("hospital_id", medDifficult.getHospitalId())
-                .eq("behospital_code", medDifficult.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrDifficultCaseVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrDifficultCaseVO strDifficultCaseVO:list) {
-                if("".equals(strDifficultCaseVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strDifficultCaseVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strDifficultCaseVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrDifficultCase> strDifficultCaseList= Lists.newArrayList();
-            strDifficultCaseList= BeanUtil.listCopyTo(list,StrDifficultCase.class);
-            execute(strDifficultCaseList);
-
-            return RespDTO.onSuc(strDifficultCaseList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrDifficultCase> list){
-        try {
-            List<StrDifficultCase> addE = Lists.newLinkedList();
-            List<StrDifficultCase> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrDifficultCase strDifficultCase = this.getOne(new QueryWrapper<StrDifficultCase>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strDifficultCase != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strDifficultCaseService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 150
src/main/java/com/diagbot/facade/str/AStrFirstRecordFacade.java

@@ -1,150 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrFirstRecord;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrFirstRecordServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrFirstRecordVO;
-import com.diagbot.vo.str.StrFirstRecordVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrFirstRecordFacade extends StrFirstRecordServiceImpl {
-
-    @Autowired
-    @Qualifier("strFirstRecordServiceImpl")
-    private StrFirstRecordServiceImpl strFirstRecordService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strFirstRecord");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrFirstRecord strFirstRecord=new StrFirstRecord();
-        try {
-            AStrFirstRecordVO strFirstRecordVO=(AStrFirstRecordVO) MapUtil.mapToObject(entityMap, AStrFirstRecordVO.class);
-            BeanUtils.copyProperties(strFirstRecordVO,strFirstRecord);
-            strFirstRecord.setHospitalId(hospitalId);//医院编码
-
-            strFirstRecord.setAuditDate(DateUtil.parseDateTime(strFirstRecordVO.getAuditDate()));//审核时间
-            strFirstRecord.setRecDate(DateUtil.parseDateTime(strFirstRecordVO.getRecDate()));//记录时间
-            strFirstRecord.setRecordDate(DateUtil.parseDateTime(strFirstRecordVO.getRecordDate()));//病历日期
-
-            strFirstRecord.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strFirstRecord)){
-                strFirstRecord.setGmtCreate(new Date());//记录创建时间
-                this.save(strFirstRecord);
-            }else{
-                strFirstRecord.setGmtModified(new Date());//记录修改时间
-                this.update(strFirstRecord,new QueryWrapper<StrFirstRecord>()
-                        .eq("rec_id", strFirstRecord.getRecId())
-                        .eq("hospital_id", strFirstRecord.getHospitalId())
-                        .eq("behospital_code", strFirstRecord.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("首次病程录", strFirstRecord.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrFirstRecord strFirstRecord){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrFirstRecord>()
-                .eq("rec_id", strFirstRecord.getRecId())
-                .eq("hospital_id", strFirstRecord.getHospitalId())
-                .eq("behospital_code", strFirstRecord.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrFirstRecordVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrFirstRecordVO strFirstRecordVO:list) {
-                if("".equals(strFirstRecordVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strFirstRecordVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strFirstRecordVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrFirstRecord> strFirstRecordList= Lists.newArrayList();
-            strFirstRecordList= BeanUtil.listCopyTo(list,StrFirstRecord.class);
-            execute(strFirstRecordList);
-
-            return RespDTO.onSuc(strFirstRecordList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrFirstRecord> list){
-        try {
-            List<StrFirstRecord> addE = Lists.newLinkedList();
-            List<StrFirstRecord> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrFirstRecord strFirstRecord = this.getOne(new QueryWrapper<StrFirstRecord>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strFirstRecord != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strFirstRecordService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-首次病程录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 149
src/main/java/com/diagbot/facade/str/AStrIllCriticallyFacade.java

@@ -1,149 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrIllCritically;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrIllCriticallyServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrIllCriticallyVO;
-import com.diagbot.vo.str.StrIllCriticallyVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrIllCriticallyFacade extends StrIllCriticallyServiceImpl {
-
-    @Autowired
-    @Qualifier("strIllCriticallyServiceImpl")
-    private StrIllCriticallyServiceImpl strIllCriticallyService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strIllCritically");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrIllCritically strIllCritically=new StrIllCritically();
-        try {
-            AStrIllCriticallyVO strIllCriticallyVO=(AStrIllCriticallyVO) MapUtil.mapToObject(entityMap, AStrIllCriticallyVO.class);
-            BeanUtils.copyProperties(strIllCriticallyVO,strIllCritically);
-            strIllCritically.setHospitalId(hospitalId);//医院编码
-            strIllCritically.setPatientSignDate(DateUtil.parseDateTime(strIllCriticallyVO.getPatientSignDate()));
-            strIllCritically.setDoctorSignDate(DateUtil.parseDateTime(strIllCriticallyVO.getDoctorSignDate()));//审核时间
-            strIllCritically.setRecordDate(DateUtil.parseDateTime(strIllCriticallyVO.getRecordDate()));//病历日期
-
-            strIllCritically.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strIllCritically)){
-                strIllCritically.setGmtCreate(new Date());//记录创建时间
-                this.save(strIllCritically);
-            }else{
-                strIllCritically.setGmtModified(new Date());//记录修改时间
-                this.update(strIllCritically,new QueryWrapper<StrIllCritically>()
-                        .eq("rec_id", strIllCritically.getRecId())
-                        .eq("hospital_id", strIllCritically.getHospitalId())
-                        .eq("behospital_code", strIllCritically.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病危通知单",strIllCritically.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrIllCritically strIllCritically){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrIllCritically>()
-                .eq("rec_id", strIllCritically.getRecId())
-                .eq("hospital_id", strIllCritically.getHospitalId())
-                .eq("behospital_code", strIllCritically.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrIllCriticallyVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrIllCriticallyVO strIllCriticallyVO:list) {
-                if("".equals(strIllCriticallyVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strIllCriticallyVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strIllCriticallyVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrIllCritically> strIllCriticallyList= Lists.newArrayList();
-            strIllCriticallyList= BeanUtil.listCopyTo(list,StrIllCritically.class);
-            execute(strIllCriticallyList);
-
-            return RespDTO.onSuc(strIllCriticallyList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrIllCritically> list){
-        try {
-            List<StrIllCritically> addE = Lists.newLinkedList();
-            List<StrIllCritically> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrIllCritically strIllCritically = this.getOne(new QueryWrapper<StrIllCritically>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strIllCritically != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strIllCriticallyService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病危通知单","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 149
src/main/java/com/diagbot/facade/str/AStrIllSeriouslFacade.java

@@ -1,149 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrIllSeriousl;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrIllSeriouslServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrIllSeriouslVO;
-import com.diagbot.vo.str.StrIllSeriouslVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrIllSeriouslFacade extends StrIllSeriouslServiceImpl {
-
-    @Autowired
-    @Qualifier("strIllSeriouslServiceImpl")
-    private StrIllSeriouslServiceImpl strIllSeriouslService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strIllSeriousl");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrIllSeriousl strIllSeriousl=new StrIllSeriousl();
-        try {
-            AStrIllSeriouslVO strIllSeriouslVO=(AStrIllSeriouslVO) MapUtil.mapToObject(entityMap, AStrIllSeriouslVO.class);
-            BeanUtils.copyProperties(strIllSeriouslVO,strIllSeriousl);
-            strIllSeriousl.setHospitalId(hospitalId);//医院编码
-            strIllSeriousl.setPatientSignDate(DateUtil.parseDateTime(strIllSeriouslVO.getPatientSignDate()));
-            strIllSeriousl.setDoctorSignDate(DateUtil.parseDateTime(strIllSeriouslVO.getDoctorSignDate()));//审核时间
-            strIllSeriousl.setRecordDate(DateUtil.parseDateTime(strIllSeriouslVO.getRecordDate()));//病历日期
-
-            strIllSeriousl.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strIllSeriousl)){
-                strIllSeriousl.setGmtCreate(new Date());//记录创建时间
-                this.save(strIllSeriousl);
-            }else{
-                strIllSeriousl.setGmtModified(new Date());//记录修改时间
-                this.update(strIllSeriousl,new QueryWrapper<StrIllSeriousl>()
-                        .eq("rec_id", strIllSeriousl.getRecId())
-                        .eq("hospital_id", strIllSeriousl.getHospitalId())
-                        .eq("behospital_code", strIllSeriousl.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("病重通知单", strIllSeriousl.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrIllSeriousl strIllSeriousl){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrIllSeriousl>()
-                .eq("rec_id", strIllSeriousl.getRecId())
-                .eq("hospital_id", strIllSeriousl.getHospitalId())
-                .eq("behospital_code", strIllSeriousl.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrIllSeriouslVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrIllSeriouslVO strIllSeriouslVO:list) {
-                if("".equals(strIllSeriouslVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strIllSeriouslVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strIllSeriouslVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrIllSeriousl> strIllSeriouslList= Lists.newArrayList();
-            strIllSeriouslList= BeanUtil.listCopyTo(list,StrIllSeriousl.class);
-            execute(strIllSeriouslList);
-
-            return RespDTO.onSuc(strIllSeriouslList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrIllSeriousl> list){
-        try {
-            List<StrIllSeriousl> addE = Lists.newLinkedList();
-            List<StrIllSeriousl> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrIllSeriousl strIllSeriousl = this.getOne(new QueryWrapper<StrIllSeriousl>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strIllSeriousl != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strIllSeriouslService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病重通知单","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 153
src/main/java/com/diagbot/facade/str/AStrLeaveHospitalFacade.java

@@ -1,153 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrLeaveHospital;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrLeaveHospitalServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrLeaveHospitalVO;
-import com.diagbot.vo.str.StrLeaveHospitalVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrLeaveHospitalFacade extends StrLeaveHospitalServiceImpl {
-
-    @Autowired
-    @Qualifier("strLeaveHospitalServiceImpl")
-    private StrLeaveHospitalServiceImpl strLeaveHospitalService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strLeaveHospital");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //危急值记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrLeaveHospital strLeaveHospital=new StrLeaveHospital();
-        try {
-            AStrLeaveHospitalVO strLeaveHospitalVO=(AStrLeaveHospitalVO) MapUtil.mapToObject(entityMap, AStrLeaveHospitalVO.class);
-            BeanUtils.copyProperties(strLeaveHospitalVO,strLeaveHospital);
-            strLeaveHospital.setHospitalId(hospitalId);//医院编码
-
-            strLeaveHospital.setAuditDate(DateUtil.parseDateTime(strLeaveHospitalVO.getAuditDate()));//审核时间
-            strLeaveHospital.setRecDate(DateUtil.parseDateTime(strLeaveHospitalVO.getRecDate()));//记录时间
-            strLeaveHospital.setBehospitalDate(DateUtil.parseDateTime(strLeaveHospitalVO.getBehospitalDate()));//入院日期
-            strLeaveHospital.setLeaveHospitalDate(DateUtil.parseDateTime(strLeaveHospitalVO.getLeaveHospitalDate()));//出院时间
-            strLeaveHospital.setRecordDate(DateUtil.parseDateTime(strLeaveHospitalVO.getRecordDate()));//病历日期
-
-            strLeaveHospital.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strLeaveHospital)){
-                strLeaveHospital.setGmtCreate(new Date());//记录创建时间
-                this.save(strLeaveHospital);
-            }else{
-                strLeaveHospital.setGmtModified(new Date());//记录修改时间
-                this.update(strLeaveHospital,new QueryWrapper<StrLeaveHospital>()
-                        .eq("rec_id", strLeaveHospital.getRecId())
-                        .eq("hospital_id", strLeaveHospital.getHospitalId())
-                        .eq("behospital_code", strLeaveHospital.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("出院小结",strLeaveHospital.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrLeaveHospital strLeaveHospital){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrLeaveHospital>()
-                .eq("rec_id", strLeaveHospital.getRecId())
-                .eq("hospital_id", strLeaveHospital.getHospitalId())
-                .eq("behospital_code", strLeaveHospital.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrLeaveHospitalVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrLeaveHospitalVO strLeaveHospitalVO:list) {
-                if("".equals(strLeaveHospitalVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strLeaveHospitalVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strLeaveHospitalVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrLeaveHospital> strLeaveHospitalList= Lists.newArrayList();
-            strLeaveHospitalList= BeanUtil.listCopyTo(list,StrLeaveHospital.class);
-            execute(strLeaveHospitalList);
-
-            return RespDTO.onSuc(strLeaveHospitalList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrLeaveHospital> list){
-        try {
-            List<StrLeaveHospital> addE = Lists.newLinkedList();
-            List<StrLeaveHospital> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrLeaveHospital strLeaveHospital = this.getOne(new QueryWrapper<StrLeaveHospital>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strLeaveHospital != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strLeaveHospitalService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-出院小结","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 154
src/main/java/com/diagbot/facade/str/AStrOperativeFirstRecord.java

@@ -1,154 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrOperativeFirstRecord;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrOperativeFirstRecordServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrOperativeFirstRecordVO;
-import com.diagbot.vo.str.StrOperativeFirstRecordVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrOperativeFirstRecord extends StrOperativeFirstRecordServiceImpl {
-
-    @Autowired
-    @Qualifier("strOperativeFirstRecordServiceImpl")
-    private StrOperativeFirstRecordServiceImpl strOperativeFirstRecordService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strOperativeFirstRecord");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //术后首程
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrOperativeFirstRecord strOperativeFirstRecord=new StrOperativeFirstRecord();
-        try {
-            AStrOperativeFirstRecordVO strOperativeFirstRecordVO=(AStrOperativeFirstRecordVO) MapUtil.mapToObject(entityMap, AStrOperativeFirstRecordVO.class);
-            BeanUtils.copyProperties(strOperativeFirstRecordVO,strOperativeFirstRecord);
-            strOperativeFirstRecord.setHospitalId(hospitalId);//医院编码
-
-            strOperativeFirstRecord.setAuditDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getAuditDate()));//审核时间
-            strOperativeFirstRecord.setRecDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getRecDate()));//记录时间
-            strOperativeFirstRecord.setOperationDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getOperationDate()));//手术日期
-            strOperativeFirstRecord.setStartTime(DateUtil.parseDate(strOperativeFirstRecordVO.getStartTime()));//开始时间
-            strOperativeFirstRecord.setEndTime(DateUtil.parseDate(strOperativeFirstRecordVO.getEndTime()));//结束时间
-            strOperativeFirstRecord.setRecordDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getRecordDate()));//病历日期
-
-            strOperativeFirstRecord.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strOperativeFirstRecord)){
-                strOperativeFirstRecord.setGmtCreate(new Date());//记录创建时间
-                this.save(strOperativeFirstRecord);
-            }else{
-                strOperativeFirstRecord.setGmtModified(new Date());//记录修改时间
-                this.update(strOperativeFirstRecord,new QueryWrapper<StrOperativeFirstRecord>()
-                        .eq("rec_id", strOperativeFirstRecord.getRecId())
-                        .eq("hospital_id", strOperativeFirstRecord.getHospitalId())
-                        .eq("behospital_code", strOperativeFirstRecord.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("术后首程",strOperativeFirstRecord.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrOperativeFirstRecord strOperativeFirstRecord){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrOperativeFirstRecord>()
-                .eq("rec_id", strOperativeFirstRecord.getRecId())
-                .eq("hospital_id", strOperativeFirstRecord.getHospitalId())
-                .eq("behospital_code", strOperativeFirstRecord.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrOperativeFirstRecordVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrOperativeFirstRecordVO strOperativeFirstRecordVO:list) {
-                if("".equals(strOperativeFirstRecordVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strOperativeFirstRecordVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strOperativeFirstRecordVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrOperativeFirstRecord> strOperativeFirstRecordList= Lists.newArrayList();
-            strOperativeFirstRecordList= BeanUtil.listCopyTo(list,StrOperativeFirstRecord.class);
-            execute(strOperativeFirstRecordList);
-
-            return RespDTO.onSuc(strOperativeFirstRecordList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrOperativeFirstRecord> list){
-        try {
-            List<StrOperativeFirstRecord> addE = Lists.newLinkedList();
-            List<StrOperativeFirstRecord> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrOperativeFirstRecord strOperativeFirstRecord = this.getOne(new QueryWrapper<StrOperativeFirstRecord>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strOperativeFirstRecord != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strOperativeFirstRecordService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术后首程","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 154
src/main/java/com/diagbot/facade/str/AStrOperativeNoteFacade.java

@@ -1,154 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrOperativeNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrOperativeNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrOperativeNoteVO;
-import com.diagbot.vo.str.StrOperativeNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrOperativeNoteFacade extends StrOperativeNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strOperativeNoteServiceImpl")
-    private StrOperativeNoteServiceImpl strOperativeNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strOperativeNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //手术记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrOperativeNote strOperativeNote=new StrOperativeNote();
-        try {
-            AStrOperativeNoteVO strOperativeNoteVO=(AStrOperativeNoteVO) MapUtil.mapToObject(entityMap, AStrOperativeNoteVO.class);
-            BeanUtils.copyProperties(strOperativeNoteVO,strOperativeNote);
-            strOperativeNote.setHospitalId(hospitalId);//医院编码
-
-            strOperativeNote.setAuditDate(DateUtil.parseDateTime(strOperativeNoteVO.getAuditDate()));//审核时间
-            strOperativeNote.setRecDate(DateUtil.parseDateTime(strOperativeNoteVO.getRecDate()));//记录时间
-            strOperativeNote.setOperationDate(DateUtil.parseDateTime(strOperativeNoteVO.getOperationDate()));//手术日期
-            strOperativeNote.setStartTime(DateUtil.parseDate(strOperativeNoteVO.getStartTime()));//开始时间
-            strOperativeNote.setEndTime(DateUtil.parseDate(strOperativeNoteVO.getEndTime()));//结束时间
-            strOperativeNote.setRecordDate(DateUtil.parseDateTime(strOperativeNoteVO.getRecordDate()));//病历日期
-
-            strOperativeNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strOperativeNote)){
-                strOperativeNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strOperativeNote);
-            }else{
-                strOperativeNote.setGmtModified(new Date());//记录修改时间
-                this.update(strOperativeNote,new QueryWrapper<StrOperativeNote>()
-                        .eq("rec_id", strOperativeNote.getRecId())
-                        .eq("hospital_id", strOperativeNote.getHospitalId())
-                        .eq("behospital_code", strOperativeNote.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("手术记录", strOperativeNote.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrOperativeNote strOperativeNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrOperativeNote>()
-                .eq("rec_id", strOperativeNote.getRecId())
-                .eq("hospital_id", strOperativeNote.getHospitalId())
-                .eq("behospital_code", strOperativeNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrOperativeNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrOperativeNoteVO strOperativeNoteVO:list) {
-                if("".equals(strOperativeNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strOperativeNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strOperativeNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrOperativeNote> strOperativeNoteList= Lists.newArrayList();
-            strOperativeNoteList= BeanUtil.listCopyTo(list,StrOperativeNote.class);
-            execute(strOperativeNoteList);
-
-            return RespDTO.onSuc(strOperativeNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrOperativeNote> list){
-        try {
-            List<StrOperativeNote> addE = Lists.newLinkedList();
-            List<StrOperativeNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrOperativeNote strOperativeNote = this.getOne(new QueryWrapper<StrOperativeNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strOperativeNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strOperativeNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-手术记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 151
src/main/java/com/diagbot/facade/str/AStrPeriodConclusionFacade.java

@@ -1,151 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrPeriodConclusion;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrPeriodConclusionServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrPeriodConclusionVO;
-import com.diagbot.vo.str.StrPeriodConclusionVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrPeriodConclusionFacade extends StrPeriodConclusionServiceImpl {
-
-    @Autowired
-    @Qualifier("strPeriodConclusionServiceImpl")
-    private StrPeriodConclusionServiceImpl strPeriodConclusionService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strPeriodConclusion");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrPeriodConclusion strPeriodConclusion=new StrPeriodConclusion();
-        try {
-            AStrPeriodConclusionVO strPeriodConclusionVO=(AStrPeriodConclusionVO) MapUtil.mapToObject(entityMap, AStrPeriodConclusionVO.class);
-            BeanUtils.copyProperties(strPeriodConclusionVO,strPeriodConclusion);
-            strPeriodConclusion.setHospitalId(hospitalId);//医院编码
-
-            strPeriodConclusion.setAuditDate(DateUtil.parseDateTime(strPeriodConclusionVO.getAuditDate()));//审核时间
-            strPeriodConclusion.setRecDate(DateUtil.parseDateTime(strPeriodConclusionVO.getRecDate()));//记录时间
-            strPeriodConclusion.setRecordDate(DateUtil.parseDateTime(strPeriodConclusionVO.getRecordDate()));//病历日期
-
-            strPeriodConclusion.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strPeriodConclusion)){
-                strPeriodConclusion.setGmtCreate(new Date());//记录创建时间
-                this.save(strPeriodConclusion);
-            }else{
-                strPeriodConclusion.setGmtModified(new Date());//记录修改时间
-                this.update(strPeriodConclusion,new QueryWrapper<StrPeriodConclusion>()
-                        .eq("rec_id", strPeriodConclusion.getRecId())
-                        .eq("hospital_id", strPeriodConclusion.getHospitalId())
-                        .eq("behospital_code", strPeriodConclusion.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("阶段小结",strPeriodConclusion.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrPeriodConclusion strPeriodConclusion){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrPeriodConclusion>()
-                .eq("rec_id", strPeriodConclusion.getRecId())
-                .eq("hospital_id", strPeriodConclusion.getHospitalId())
-                .eq("behospital_code", strPeriodConclusion.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrPeriodConclusionVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrPeriodConclusionVO strPeriodConclusionVO:list) {
-                if("".equals(strPeriodConclusionVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strPeriodConclusionVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strPeriodConclusionVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrPeriodConclusion> strPeriodConclusionList= Lists.newArrayList();
-            strPeriodConclusionList= BeanUtil.listCopyTo(list,StrPeriodConclusion.class);
-            execute(strPeriodConclusionList);
-
-            return RespDTO.onSuc(strPeriodConclusionList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrPeriodConclusion> list){
-        try {
-            List<StrPeriodConclusion> addE = Lists.newLinkedList();
-            List<StrPeriodConclusion> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrPeriodConclusion strPeriodConclusion = this.getOne(new QueryWrapper<StrPeriodConclusion>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strPeriodConclusion != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strPeriodConclusionService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-阶段小结","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-
-}

+ 0 - 152
src/main/java/com/diagbot/facade/str/AStrPreoperativeDiscussionFacade.java

@@ -1,152 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrPreoperativeDiscussion;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrPreoperativeDiscussionServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrPreoperativeDiscussionVO;
-import com.diagbot.vo.str.StrPreoperativeDiscussionVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrPreoperativeDiscussionFacade extends StrPreoperativeDiscussionServiceImpl {
-
-    @Autowired
-    @Qualifier("strPreoperativeDiscussionServiceImpl")
-    private StrPreoperativeDiscussionServiceImpl strPreoperativeDiscussionService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strPreoperativeDiscussion");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //入院记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrPreoperativeDiscussion strPreoperativeDiscussion=new StrPreoperativeDiscussion();
-        try {
-            AStrPreoperativeDiscussionVO strPreoperativeDiscussionVO=(AStrPreoperativeDiscussionVO) MapUtil.mapToObject(entityMap, AStrPreoperativeDiscussionVO.class);
-            BeanUtils.copyProperties(strPreoperativeDiscussionVO,strPreoperativeDiscussion);
-            strPreoperativeDiscussion.setHospitalId(hospitalId);//医院编码
-
-            strPreoperativeDiscussion.setAuditDate(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getAuditDate()));//审核时间
-            strPreoperativeDiscussion.setRecDate(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getRecDate()));//记录时间
-            strPreoperativeDiscussion.setDiscussTime(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getDiscussTime()));//讨论时间
-            strPreoperativeDiscussion.setRecordDate(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getRecordDate()));//病历日期
-
-            strPreoperativeDiscussion.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strPreoperativeDiscussion)){
-                strPreoperativeDiscussion.setGmtCreate(new Date());//记录创建时间
-                this.save(strPreoperativeDiscussion);
-            }else{
-                strPreoperativeDiscussion.setGmtModified(new Date());//记录修改时间
-                this.update(strPreoperativeDiscussion,new QueryWrapper<StrPreoperativeDiscussion>()
-                        .eq("rec_id", strPreoperativeDiscussion.getRecId())
-                        .eq("hospital_id", strPreoperativeDiscussion.getHospitalId())
-                        .eq("behospital_code", strPreoperativeDiscussion.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("术前讨论小结",strPreoperativeDiscussion.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrPreoperativeDiscussion strPreoperativeDiscussion){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrPreoperativeDiscussion>()
-                .eq("rec_id", strPreoperativeDiscussion.getRecId())
-                .eq("hospital_id", strPreoperativeDiscussion.getHospitalId())
-                .eq("behospital_code", strPreoperativeDiscussion.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrPreoperativeDiscussionVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrPreoperativeDiscussionVO strPreoperativeDiscussionVO:list) {
-                if("".equals(strPreoperativeDiscussionVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strPreoperativeDiscussionVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strPreoperativeDiscussionVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrPreoperativeDiscussion> strPreoperativeDiscussionList= Lists.newArrayList();
-            strPreoperativeDiscussionList= BeanUtil.listCopyTo(list,StrPreoperativeDiscussion.class);
-            execute(strPreoperativeDiscussionList);
-
-            return RespDTO.onSuc(strPreoperativeDiscussionList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrPreoperativeDiscussion> list){
-        try {
-            List<StrPreoperativeDiscussion> addE = Lists.newLinkedList();
-            List<StrPreoperativeDiscussion> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrPreoperativeDiscussion strPreoperativeDiscussion = this.getOne(new QueryWrapper<StrPreoperativeDiscussion>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strPreoperativeDiscussion != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strPreoperativeDiscussionService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术前讨论小结","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 152
src/main/java/com/diagbot/facade/str/AStrRescueNoteFacade.java

@@ -1,152 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrRescueNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrRescueNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrRescueNoteVO;
-import com.diagbot.vo.str.StrRescueNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrRescueNoteFacade extends StrRescueNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strRescueNoteServiceImpl")
-    private StrRescueNoteServiceImpl strRescueNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strRescueNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrRescueNote strRescueNote=new StrRescueNote();
-        try {
-            AStrRescueNoteVO strRescueNoteVO=(AStrRescueNoteVO) MapUtil.mapToObject(entityMap, AStrRescueNoteVO.class);
-            BeanUtils.copyProperties(strRescueNoteVO,strRescueNote);
-            strRescueNote.setHospitalId(hospitalId);//医院编码
-
-            strRescueNote.setAuditDate(DateUtil.parseDateTime(strRescueNoteVO.getAuditDate()));//审核时间
-            strRescueNote.setRecDate(DateUtil.parseDateTime(strRescueNoteVO.getRecDate()));//记录时间
-            strRescueNote.setStartTime(DateUtil.parseDateTime(strRescueNoteVO.getStartTime()));//开始时间
-            strRescueNote.setEndTime(DateUtil.parseDate(strRescueNoteVO.getEndTime()));//结束时间
-            strRescueNote.setRecordDate(DateUtil.parseDateTime(strRescueNoteVO.getRecordDate()));//病历日期
-
-            strRescueNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strRescueNote)){
-                strRescueNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strRescueNote);
-            }else{
-                strRescueNote.setGmtModified(new Date());//记录修改时间
-                this.update(strRescueNote,new QueryWrapper<StrRescueNote>()
-                        .eq("rec_id", strRescueNote.getRecId())
-                        .eq("hospital_id", strRescueNote.getHospitalId())
-                        .eq("behospital_code", strRescueNote.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("抢救记录", strRescueNote.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrRescueNote strRescueNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrRescueNote>()
-                .eq("rec_id", strRescueNote.getRecId())
-                .eq("hospital_id", strRescueNote.getHospitalId())
-                .eq("behospital_code", strRescueNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrRescueNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrRescueNoteVO strRescueNoteVO:list) {
-                if("".equals(strRescueNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strRescueNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strRescueNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrRescueNote> strRescueNoteList= Lists.newArrayList();
-            strRescueNoteList= BeanUtil.listCopyTo(list,StrRescueNote.class);
-            execute(strRescueNoteList);
-
-            return RespDTO.onSuc(strRescueNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrRescueNote> list){
-        try {
-            List<StrRescueNote> addE = Lists.newLinkedList();
-            List<StrRescueNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrRescueNote strRescueNote = this.getOne(new QueryWrapper<StrRescueNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strRescueNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strRescueNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-抢救记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 151
src/main/java/com/diagbot/facade/str/AStrTransferInNoteFacade.java

@@ -1,151 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrTransferInNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrTransferInNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrTransferInNoteVO;
-import com.diagbot.vo.str.StrTransferInNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrTransferInNoteFacade extends StrTransferInNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strTransferInNoteServiceImpl")
-    private StrTransferInNoteServiceImpl strTransferInNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strTransferInNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrTransferInNote strTransferInNote=new StrTransferInNote();
-        try {
-            AStrTransferInNoteVO strTransferInNoteVO=(AStrTransferInNoteVO) MapUtil.mapToObject(entityMap, AStrTransferInNoteVO.class);
-            BeanUtils.copyProperties(strTransferInNoteVO,strTransferInNote);
-            strTransferInNote.setHospitalId(hospitalId);//医院编码
-            strTransferInNote.setTransferInDate(DateUtil.parseDateTime(strTransferInNoteVO.getTransferInDate()));
-            strTransferInNote.setAuditDate(DateUtil.parseDateTime(strTransferInNoteVO.getAuditDate()));//审核时间
-            strTransferInNote.setRecDate(DateUtil.parseDateTime(strTransferInNoteVO.getRecDate()));//记录时间
-            strTransferInNote.setRecordDate(DateUtil.parseDateTime(strTransferInNoteVO.getRecordDate()));//病历日期
-
-            strTransferInNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strTransferInNote)){
-                strTransferInNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strTransferInNote);
-            }else{
-                strTransferInNote.setGmtModified(new Date());//记录修改时间
-                this.update(strTransferInNote,new QueryWrapper<StrTransferInNote>()
-                        .eq("rec_id", strTransferInNote.getRecId())
-                        .eq("hospital_id", strTransferInNote.getHospitalId())
-                        .eq("behospital_code", strTransferInNote.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("转入记录",strTransferInNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrTransferInNote strTransferInNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrTransferInNote>()
-                .eq("rec_id", strTransferInNote.getRecId())
-                .eq("hospital_id", strTransferInNote.getHospitalId())
-                .eq("behospital_code", strTransferInNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrTransferInNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrTransferInNoteVO strTransferInNoteVO:list) {
-                if("".equals(strTransferInNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strTransferInNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strTransferInNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrTransferInNote> strTransferInNoteList= Lists.newArrayList();
-            strTransferInNoteList= BeanUtil.listCopyTo(list,StrTransferInNote.class);
-            execute(strTransferInNoteList);
-
-            return RespDTO.onSuc(strTransferInNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrTransferInNote> list){
-        try {
-            List<StrTransferInNote> addE = Lists.newLinkedList();
-            List<StrTransferInNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrTransferInNote strTransferInNote = this.getOne(new QueryWrapper<StrTransferInNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strTransferInNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strTransferInNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转入记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-
-}

+ 0 - 149
src/main/java/com/diagbot/facade/str/AStrTransferOutNoteFacade.java

@@ -1,149 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrTransferOutNote;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrTransferOutNoteServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrTransferOutNoteVO;
-import com.diagbot.vo.str.StrTransferOutNoteVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrTransferOutNoteFacade extends StrTransferOutNoteServiceImpl {
-
-    @Autowired
-    @Qualifier("strTransferOutNoteServiceImpl")
-    private StrTransferOutNoteServiceImpl strTransferOutNoteService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strTransferOutNote");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrTransferOutNote strTransferOutNote=new StrTransferOutNote();
-        try {
-            AStrTransferOutNoteVO strTransferOutNoteVO=(AStrTransferOutNoteVO) MapUtil.mapToObject(entityMap, AStrTransferOutNoteVO.class);
-            BeanUtils.copyProperties(strTransferOutNoteVO,strTransferOutNote);
-            strTransferOutNote.setHospitalId(hospitalId);//医院编码
-            strTransferOutNote.setTransferInDate(DateUtil.parseDateTime(strTransferOutNoteVO.getTransferInDate()));
-            strTransferOutNote.setAuditDate(DateUtil.parseDateTime(strTransferOutNoteVO.getAuditDate()));//审核时间
-            strTransferOutNote.setRecDate(DateUtil.parseDateTime(strTransferOutNoteVO.getRecDate()));//记录时间
-            strTransferOutNote.setRecordDate(DateUtil.parseDateTime(strTransferOutNoteVO.getRecordDate()));//病历日期
-
-            strTransferOutNote.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strTransferOutNote)){
-                strTransferOutNote.setGmtCreate(new Date());//记录创建时间
-                this.save(strTransferOutNote);
-            }else{
-                strTransferOutNote.setGmtModified(new Date());//记录修改时间
-                this.update(strTransferOutNote,new QueryWrapper<StrTransferOutNote>()
-                        .eq("rec_id", strTransferOutNote.getRecId())
-                        .eq("hospital_id", strTransferOutNote.getHospitalId())
-                        .eq("behospital_code", strTransferOutNote.getBehospitalCode()));
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("转出记录",strTransferOutNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrTransferOutNote strTransferOutNote){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrTransferOutNote>()
-                .eq("rec_id", strTransferOutNote.getRecId())
-                .eq("hospital_id", strTransferOutNote.getHospitalId())
-                .eq("behospital_code", strTransferOutNote.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrTransferOutNoteVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrTransferOutNoteVO strTransferOutNoteVO:list) {
-                if("".equals(strTransferOutNoteVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strTransferOutNoteVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strTransferOutNoteVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrTransferOutNote> strTransferOutNoteList= Lists.newArrayList();
-            strTransferOutNoteList= BeanUtil.listCopyTo(list,StrTransferOutNote.class);
-            execute(strTransferOutNoteList);
-
-            return RespDTO.onSuc(strTransferOutNoteList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrTransferOutNote> list){
-        try {
-            List<StrTransferOutNote> addE = Lists.newLinkedList();
-            List<StrTransferOutNote> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrTransferOutNote strTransferOutNote = this.getOne(new QueryWrapper<StrTransferOutNote>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strTransferOutNote != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strTransferOutNoteService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转出记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 0 - 152
src/main/java/com/diagbot/facade/str/AStrWardRecordFacade.java

@@ -1,152 +0,0 @@
-package com.diagbot.facade.str;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.ColumnZhAndChDTO;
-import com.diagbot.entity.StrWardRecord;
-import com.diagbot.facade.data.AMedAbnormalInfoFacade;
-import com.diagbot.facade.data.ColumnFacade;
-import com.diagbot.service.impl.StrWardRecordServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.vo.data.AStrWardRecordVO;
-import com.diagbot.vo.str.StrWardRecordVO;
-import com.google.common.collect.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AStrWardRecordFacade extends StrWardRecordServiceImpl {
-
-    @Autowired
-    @Qualifier("strWardRecordServiceImpl")
-    private StrWardRecordServiceImpl strWardRecordService;
-    @Autowired
-    private ColumnFacade columnFacade;
-    @Autowired
-    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
-
-    public void getColumnZhAndCh(){
-        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
-        list.forEach(s->{
-            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
-        });
-
-        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
-        Boolean flag=columnFacade.createColumn(columnMap,"strWardRecord");
-
-        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
-        if(!flag){
-            return;
-        }
-    }
-
-    //查房记录
-    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
-        StrWardRecord strWardRecord=new StrWardRecord();
-        try {
-            AStrWardRecordVO strWardRecordVO=(AStrWardRecordVO) MapUtil.mapToObject(entityMap, AStrWardRecordVO.class);
-            BeanUtils.copyProperties(strWardRecordVO,strWardRecord);
-            strWardRecord.setHospitalId(hospitalId);//医院编码
-
-            strWardRecord.setAuditDate(DateUtil.parseDateTime(strWardRecordVO.getAuditDate()));//审核时间
-            strWardRecord.setRecDate(DateUtil.parseDateTime(strWardRecordVO.getRecDate()));//记录时间
-            strWardRecord.setWardDate(DateUtil.parseDateTime(strWardRecordVO.getWardDate()));//查房日期
-            strWardRecord.setRecordDate(DateUtil.parseDateTime(strWardRecordVO.getRecordDate()));//病历日期
-
-            strWardRecord.setWholeData(columnMap);
-            //判断数据库中是否存在,不存在insert
-            if(isExist(strWardRecord)){
-                strWardRecord.setGmtCreate(new Date());//记录创建时间
-                this.save(strWardRecord);
-            }else{
-                strWardRecord.setGmtModified(new Date());//记录修改时间
-                this.update(strWardRecord,new QueryWrapper<StrWardRecord>()
-                        .eq("rec_id", strWardRecord.getRecId())
-                        .eq("hospital_id", strWardRecord.getHospitalId())
-                        .eq("behospital_code", strWardRecord.getBehospitalCode()));
-            }
-
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("查房记录", strWardRecord.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
-        }
-
-    }
-
-    public Boolean isExist(StrWardRecord strWardRecord){
-        Boolean flag=true;
-        int count = this.baseMapper.selectCount(new QueryWrapper<StrWardRecord>()
-                .eq("rec_id", strWardRecord.getRecId())
-                .eq("hospital_id", strWardRecord.getHospitalId())
-                .eq("behospital_code", strWardRecord.getBehospitalCode()));
-        if(count>0){
-            flag=false;
-        }
-        return flag;
-    }
-
-    public RespDTO execDealData(List<StrWardRecordVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrWardRecordVO strWardRecordVO:list) {
-                if("".equals(strWardRecordVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strWardRecordVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strWardRecordVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
-                }
-            }
-            //初始、格式化数据
-            List<StrWardRecord> strWardRecordList= Lists.newArrayList();
-            strWardRecordList= BeanUtil.listCopyTo(list,StrWardRecord.class);
-            execute(strWardRecordList);
-
-            return RespDTO.onSuc(strWardRecordList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
-        }
-    }
-
-    public void execute(List<StrWardRecord> list){
-        try {
-            List<StrWardRecord> addE = Lists.newLinkedList();
-            List<StrWardRecord> updateE = Lists.newLinkedList();
-            if (list != null && list.size() > 0) {
-                list.stream().forEach(s -> {
-                    StrWardRecord strWardRecord = this.getOne(new QueryWrapper<StrWardRecord>()
-                            .eq("rec_id", s.getRecId())
-                            .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
-                    if (strWardRecord != null) {
-                        s.setGmtModified(new Date());
-                        updateE.add(s);
-                    } else {
-                        s.setGmtCreate(new Date());
-                        addE.add(s);
-                    }
-                });
-            }
-            if(addE.size()>0){
-                strWardRecordService.saveBatch(addE);
-            }
-            if(updateE.size()>0){
-                this.baseMapper.updateBatchByKey(updateE);
-            }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-查房记录","", JSON.toJSONString(list),"",e.getMessage());
-        }
-    }
-}

+ 231 - 0
src/main/java/com/diagbot/facade/str/BStrAdmissionNoteFacade.java

@@ -0,0 +1,231 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrAdmissionNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrAdmissionNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrAdmissionNoteVO;
+import com.diagbot.vo.str.StrAdmissionNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strAdmissionNoteServiceImpl")
+    private StrAdmissionNoteServiceImpl strAdmissionNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh() {
+        List<ColumnZhAndChDTO> list = this.baseMapper.getColumnZhAndCh();
+        list.forEach(s -> {
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap = EntityUtil.makeMapWithKeyValue(list, "ch", "en");
+        Boolean flag = columnFacade.createColumn(columnMap, "strAdmissionNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strAdmissionNote");
+        if (!flag) {
+            return;
+        }
+    }
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrAdmissionNote strAdmissionNote = new StrAdmissionNote();
+        strAdmissionNote.setRecId(strContentVO.getRecId());
+        strAdmissionNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strAdmissionNote.setHospitalId(strContentVO.getHospitalId());
+        strAdmissionNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strAdmissionNote)) {
+            strAdmissionNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strAdmissionNote);
+        } else {
+            strAdmissionNote.setGmtModified(new Date());//记录修改时间
+            this.update(strAdmissionNote, new QueryWrapper<StrAdmissionNote>()
+                    .eq("rec_id", strAdmissionNote.getRecId())
+                    .eq("hospital_id", strAdmissionNote.getHospitalId())
+                    .eq("behospital_code", strAdmissionNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap, Map<String, Object> entityMap, Long hospitalId) throws Exception {
+        StrAdmissionNote strAdmissionNote = new StrAdmissionNote();
+        AStrAdmissionNoteVO strAdmissionNoteVO = (AStrAdmissionNoteVO) MapUtil.mapToObject(entityMap, AStrAdmissionNoteVO.class);
+        BeanUtils.copyProperties(strAdmissionNoteVO, strAdmissionNote);
+        strAdmissionNote.setHospitalId(hospitalId);//医院编码
+
+        strAdmissionNote.setAuditDate(DateUtil.parseDateTime(strAdmissionNoteVO.getAuditDate()));//审核时间
+        strAdmissionNote.setRecDate(DateUtil.parseDateTime(strAdmissionNoteVO.getRecDate()));//记录时间
+        strAdmissionNote.setBehospitalDate(DateUtil.parseDateTime(strAdmissionNoteVO.getBehospitalDate()));//入院日期
+        strAdmissionNote.setBirthday(DateUtil.parseDate(strAdmissionNoteVO.getBirthday()));//出生日期
+        strAdmissionNote.setRecordDate(DateUtil.parseDateTime(strAdmissionNoteVO.getRecordDate()));//病历日期
+
+        strAdmissionNote.setWholeData(columnMap);
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strAdmissionNote)) {
+            strAdmissionNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strAdmissionNote);
+        } else {
+            strAdmissionNote.setGmtModified(new Date());//记录修改时间
+            this.update(strAdmissionNote, new QueryWrapper<StrAdmissionNote>()
+                    .eq("rec_id", strAdmissionNote.getRecId())
+                    .eq("hospital_id", strAdmissionNote.getHospitalId())
+                    .eq("behospital_code", strAdmissionNote.getBehospitalCode()));
+        }
+    }
+
+    public Boolean isExist(StrAdmissionNote strAdmissionNote) {
+        Boolean flag = true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrAdmissionNote>()
+                .eq("rec_id", strAdmissionNote.getRecId())
+                .eq("hospital_id", strAdmissionNote.getHospitalId())
+                .eq("behospital_code", strAdmissionNote.getBehospitalCode()));
+        if (count > 0) {
+            flag = false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:入院记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrAdmissionNoteVO> list) {
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrAdmissionNoteVO strAdmissionNoteVO:list) {
+                    if("".equals(strAdmissionNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strAdmissionNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strAdmissionNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrAdmissionNote> strAdmissionNoteList=initData(list);
+                execute(strAdmissionNoteList);
+
+                if(logSwitch){
+                    strAdmissionNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录-正常", s.getRecId(), JSON.toJSONString(list), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+
+    }
+
+    /**
+     * @Description:入库前,初始化数据库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    private List<StrAdmissionNote> initData(List<StrAdmissionNoteVO> list) throws Exception{
+        List<StrAdmissionNote> strAdmissionNoteList=Lists.newArrayList();
+        for (StrAdmissionNoteVO s:list) {
+            StrAdmissionNote t=new StrAdmissionNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getBirthday())){
+                t.setBirthday(DateUtil.parseDate(s.getBirthday()));//出生日期
+            }
+            if(StringUtil.isNotEmpty(s.getBehospitalDate())){
+                t.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));//入院日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.BEHOSPITAL_INFO.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            t.setWholeData(JSON.toJSONString(wholeMap));
+            strAdmissionNoteList.add(t);
+        }
+        return strAdmissionNoteList;
+    }
+
+    public void execute(List<StrAdmissionNote> list) throws Exception{
+        List<StrAdmissionNote> addE = Lists.newLinkedList();
+        List<StrAdmissionNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.forEach(s -> {
+                StrAdmissionNote strAdmissionNote = this.getOne(new QueryWrapper<StrAdmissionNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strAdmissionNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strAdmissionNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+}

+ 231 - 0
src/main/java/com/diagbot/facade/str/BStrBloodResultFacade.java

@@ -0,0 +1,231 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrAdmissionNote;
+import com.diagbot.entity.StrBloodResult;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrBloodResultServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrBloodResultVO;
+import com.diagbot.vo.str.StrBloodResultVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:输血后效果评价-业务类
+ * @Author:liuqq
+ * @time: ${DATE} ${TIME}
+ **/
+@Component
+public class BStrBloodResultFacade extends StrBloodResultServiceImpl {
+
+    @Autowired
+    @Qualifier("strBloodResultServiceImpl")
+    private StrBloodResultServiceImpl strBloodResultService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strBloodResult");
+        if(!flag){
+            return;
+        }
+        //Map<String, String> map=columnFacade.getColumn("strBloodResult");
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrBloodResult strBloodResult=new StrBloodResult();
+        strBloodResult.setRecId(strContentVO.getRecId());
+        strBloodResult.setBehospitalCode(strContentVO.getBehospitalCode());
+        strBloodResult.setHospitalId(strContentVO.getHospitalId());
+        strBloodResult.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strBloodResult)) {
+            strBloodResult.setGmtCreate(new Date());//记录创建时间
+            this.save(strBloodResult);
+        } else {
+            strBloodResult.setGmtModified(new Date());//记录修改时间
+            this.update(strBloodResult, new QueryWrapper<StrBloodResult>()
+                    .eq("rec_id", strBloodResult.getRecId())
+                    .eq("hospital_id", strBloodResult.getHospitalId())
+                    .eq("behospital_code", strBloodResult.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrBloodResult strBloodResult=new StrBloodResult();
+        try {
+            AStrBloodResultVO strBloodResultVO=(AStrBloodResultVO) MapUtil.mapToObject(entityMap, AStrBloodResultVO.class);
+            BeanUtils.copyProperties(strBloodResultVO,strBloodResult);
+            strBloodResult.setHospitalId(hospitalId);//医院编码
+            strBloodResult.setAuditDate(DateUtil.parseDateTime(strBloodResultVO.getAuditDate()));//审核时间
+            strBloodResult.setRecDate(DateUtil.parseDateTime(strBloodResultVO.getRecDate()));//记录时间
+            strBloodResult.setRecordDate(DateUtil.parseDateTime(strBloodResultVO.getRecordDate()));//病历日期
+
+            strBloodResult.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strBloodResult)){
+                strBloodResult.setGmtCreate(new Date());//记录创建时间
+                this.save(strBloodResult);
+            }else{
+                strBloodResult.setGmtModified(new Date());//记录修改时间
+                this.update(strBloodResult,new QueryWrapper<StrBloodResult>()
+                        .eq("rec_id", strBloodResult.getRecId())
+                        .eq("hospital_id", strBloodResult.getHospitalId())
+                        .eq("behospital_code", strBloodResult.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("输血效果评价",strBloodResult.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    /**
+     * @Description: 是否存在
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public Boolean isExist(StrBloodResult strBloodResult){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrBloodResult>()
+                .eq("rec_id", strBloodResult.getRecId())
+                .eq("hospital_id", strBloodResult.getHospitalId())
+                .eq("behospital_code", strBloodResult.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:输血后效果评价-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrBloodResultVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrBloodResultVO strBloodResultVO:list) {
+                    if("".equals(strBloodResultVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strBloodResultVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strBloodResultVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrBloodResult> strBloodResultList= initData(list);
+                execute(strBloodResultList);
+
+                if(logSwitch){
+                    strBloodResultList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-输血后效果评价-正常", s.getRecId(), JSON.toJSONString(list), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-输血后效果评价-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrBloodResult> initData(List<StrBloodResultVO> list) throws Exception{
+        List<StrBloodResult> tList=Lists.newArrayList();
+        for (StrBloodResultVO s:list) {
+            StrBloodResult t=new StrBloodResult();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.BLOOD_RESULT.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrBloodResult> list) throws Exception{
+        List<StrBloodResult> addE = Lists.newLinkedList();
+        List<StrBloodResult> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrBloodResult strBloodResult = this.getOne(new QueryWrapper<StrBloodResult>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strBloodResult != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strBloodResultService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 104 - 20
src/main/java/com/diagbot/facade/str/AStrBloodTransfusionFacade.java

@@ -6,19 +6,24 @@ import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ColumnZhAndChDTO;
 import com.diagbot.entity.StrBloodTransfusion;
+import com.diagbot.entity.StrBloodTransfusion;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.facade.data.AMedAbnormalInfoFacade;
 import com.diagbot.facade.data.ColumnFacade;
 import com.diagbot.service.impl.StrBloodTransfusionServiceImpl;
-import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.data.AStrBloodTransfusionVO;
 import com.diagbot.vo.str.StrBloodTransfusionVO;
+import com.diagbot.vo.str.StrContentVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -31,16 +36,17 @@ import java.util.Map;
  * @time: ${DATE} ${TIME}
  **/
 @Component
-public class AStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
+public class BStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
 
     @Autowired
     @Qualifier("strBloodTransfusionServiceImpl")
     private StrBloodTransfusionServiceImpl strBloodTransfusionService;
     @Autowired
     private ColumnFacade columnFacade;
-
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
 
     public void getColumnZhAndCh(){
         List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
@@ -57,6 +63,35 @@ public class AStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
         }
     }
 
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrBloodTransfusion strBloodTransfusion=new StrBloodTransfusion();
+        strBloodTransfusion.setRecId(strContentVO.getRecId());
+        strBloodTransfusion.setBehospitalCode(strContentVO.getBehospitalCode());
+        strBloodTransfusion.setHospitalId(strContentVO.getHospitalId());
+        strBloodTransfusion.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strBloodTransfusion)) {
+            strBloodTransfusion.setGmtCreate(new Date());//记录创建时间
+            this.save(strBloodTransfusion);
+        } else {
+            strBloodTransfusion.setGmtModified(new Date());//记录修改时间
+            this.update(strBloodTransfusion, new QueryWrapper<StrBloodTransfusion>()
+                    .eq("rec_id", strBloodTransfusion.getRecId())
+                    .eq("hospital_id", strBloodTransfusion.getHospitalId())
+                    .eq("behospital_code", strBloodTransfusion.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
     public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
         StrBloodTransfusion strBloodTransfusion=new StrBloodTransfusion();
         try {
@@ -102,27 +137,75 @@ public class AStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
         return flag;
     }
 
+    /**
+     * @Description:输血/血制品病程记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
     public RespDTO execDealData(List<StrBloodTransfusionVO> list){
-        if(list!=null && list.size()>0){
-            //循环验证数据有效性
-            for (StrBloodTransfusionVO strBloodTransfusionVO:list) {
-                if("".equals(strBloodTransfusionVO.getRecId())) {
-                    return RespDTO.onError("请输入记录编号!");
-                }else if(strBloodTransfusionVO.getHospitalId()==null){
-                    return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strBloodTransfusionVO.getBehospitalCode())){
-                    return RespDTO.onError("请输入病人住院编码!");
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrBloodTransfusionVO strBloodTransfusionVO:list) {
+                    if("".equals(strBloodTransfusionVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strBloodTransfusionVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strBloodTransfusionVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrBloodTransfusion> strBloodTransfusionList= initData(list);
+                execute(strBloodTransfusionList);
+
+                if(logSwitch){
+                    strBloodTransfusionList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-输血/血制品病程记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
                 }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-输血/血制品病程记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrBloodTransfusion> initData(List<StrBloodTransfusionVO> list) throws Exception{
+        List<StrBloodTransfusion> tList=Lists.newArrayList();
+        for (StrBloodTransfusionVO s:list) {
+            StrBloodTransfusion t=new StrBloodTransfusion();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getStartTime())){
+                t.setStartTime(DateUtil.parseDateTime(s.getStartTime()));//开始日期
+            }
+            if(StringUtil.isNotEmpty(s.getEndTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getEndTime()));//结束日期
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
             }
-            //初始、格式化数据
-            List<StrBloodTransfusion> strBloodTransfusionList= Lists.newArrayList();
-            strBloodTransfusionList= BeanUtil.listCopyTo(list,StrBloodTransfusion.class);
-            execute(strBloodTransfusionList);
-
-            return RespDTO.onSuc(strBloodTransfusionList);
-        }else{
-            return RespDTO.onError("未接收到数据!");
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.BLOOD_TRANSFUSION.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
         }
+        return tList;
     }
 
     public void execute(List<StrBloodTransfusion> list){
@@ -132,6 +215,7 @@ public class AStrBloodTransfusionFacade extends StrBloodTransfusionServiceImpl {
             if (list != null && list.size() > 0) {
                 list.stream().forEach(s -> {
                     StrBloodTransfusion strBloodTransfusion = this.getOne(new QueryWrapper<StrBloodTransfusion>()
+                            .eq("is_deleted", IsDeleteEnum.N.getKey())
                             .eq("rec_id", s.getRecId())
                             .eq("hospital_id", s.getHospitalId())
                             .eq("behospital_code",s.getBehospitalCode()), false);

+ 236 - 0
src/main/java/com/diagbot/facade/str/BStrConsultationApplyFacade.java

@@ -0,0 +1,236 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrConsultationApply;
+import com.diagbot.entity.StrConsultationApply;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrConsultationApplyServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrConsultationApplyVO;
+import com.diagbot.vo.str.StrConsultationApplyVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrConsultationApplyFacade extends StrConsultationApplyServiceImpl {
+
+    @Autowired
+    @Qualifier("strConsultationApplyServiceImpl")
+    private StrConsultationApplyServiceImpl strConsultationApplyService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationApply");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrConsultationApply strConsultationApply=new StrConsultationApply();
+        strConsultationApply.setRecId(strContentVO.getRecId());
+        strConsultationApply.setBehospitalCode(strContentVO.getBehospitalCode());
+        strConsultationApply.setHospitalId(strContentVO.getHospitalId());
+        strConsultationApply.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strConsultationApply)) {
+            strConsultationApply.setGmtCreate(new Date());//记录创建时间
+            this.save(strConsultationApply);
+        } else {
+            strConsultationApply.setGmtModified(new Date());//记录修改时间
+            this.update(strConsultationApply, new QueryWrapper<StrConsultationApply>()
+                    .eq("rec_id", strConsultationApply.getRecId())
+                    .eq("hospital_id", strConsultationApply.getHospitalId())
+                    .eq("behospital_code", strConsultationApply.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrConsultationApply strConsultationApply=new StrConsultationApply();
+        try {
+            AStrConsultationApplyVO strConsultationApplyVO=(AStrConsultationApplyVO) MapUtil.mapToObject(entityMap, AStrConsultationApplyVO.class);
+            BeanUtils.copyProperties(strConsultationApplyVO,strConsultationApply);
+            strConsultationApply.setHospitalId(hospitalId);//医院编码
+
+            strConsultationApply.setAuditDate(DateUtil.parseDateTime(strConsultationApplyVO.getAuditDate()));//审核时间
+            strConsultationApply.setRecDate(DateUtil.parseDateTime(strConsultationApplyVO.getRecDate()));//记录时间
+            strConsultationApply.setBehospitalDate(DateUtil.parseDateTime(strConsultationApplyVO.getBehospitalDate()));//入院日期
+            strConsultationApply.setRecordDate(DateUtil.parseDateTime(strConsultationApplyVO.getRecordDate()));//病历日期
+            strConsultationApply.setApplyDate(DateUtil.parseDateTime(strConsultationApplyVO.getApplyDate()));//申请日期
+            strConsultationApply.setConsultationDate(DateUtil.parseDateTime(strConsultationApplyVO.getConsultationDate()));//会诊时间
+            strConsultationApply.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strConsultationApply)){
+                strConsultationApply.setGmtCreate(new Date());//记录创建时间
+                this.save(strConsultationApply);
+            }else{
+                strConsultationApply.setGmtModified(new Date());//记录修改时间
+                this.update(strConsultationApply,new QueryWrapper<StrConsultationApply>()
+                        .eq("rec_id", strConsultationApply.getRecId())
+                        .eq("hospital_id", strConsultationApply.getHospitalId())
+                        .eq("behospital_code", strConsultationApply.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊申请单",strConsultationApply.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrConsultationApply strConsultationApply){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationApply>()
+                .eq("rec_id", strConsultationApply.getRecId())
+                .eq("hospital_id", strConsultationApply.getHospitalId())
+                .eq("behospital_code", strConsultationApply.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:会诊申请单-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrConsultationApplyVO> list){
+        try {
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrConsultationApplyVO strConsultationApplyVO:list) {
+                    if("".equals(strConsultationApplyVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strConsultationApplyVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strConsultationApplyVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrConsultationApply> strConsultationApplyList= initData(list);
+                execute(strConsultationApplyList);
+
+                if(logSwitch){
+                    strConsultationApplyList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊申请单-正常", s.getRecId(), JSON.toJSONString(list), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊申请单-异常", s.getRecId(), JSON.toJSONString(s), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrConsultationApply> initData(List<StrConsultationApplyVO> list) throws Exception{
+        List<StrConsultationApply> tList=Lists.newArrayList();
+        for (StrConsultationApplyVO s:list) {
+            StrConsultationApply t=new StrConsultationApply();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getBehospitalDate())){
+                t.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));//入院日期
+            }
+            if(StringUtil.isNotEmpty(s.getApplyDate())){
+                t.setApplyDate(DateUtil.parseDateTime(s.getApplyDate()));//申请日期
+            }
+            if(StringUtil.isNotEmpty(s.getConsultationDate())){
+                t.setConsultationDate(DateUtil.parseDateTime(s.getConsultationDate()));//会诊时间
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.CONSULTATION_APPLY.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrConsultationApply> list) throws Exception{
+        List<StrConsultationApply> addE = Lists.newLinkedList();
+        List<StrConsultationApply> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrConsultationApply strConsultationApply = this.getOne(new QueryWrapper<StrConsultationApply>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strConsultationApply != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strConsultationApplyService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+}

+ 237 - 0
src/main/java/com/diagbot/facade/str/BStrConsultationNoteFacade.java

@@ -0,0 +1,237 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrConsultationNote;
+import com.diagbot.entity.StrConsultationNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrConsultationNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrConsultationNoteVO;
+import com.diagbot.vo.str.StrConsultationNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrConsultationNoteFacade extends StrConsultationNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strConsultationNoteServiceImpl")
+    private StrConsultationNoteServiceImpl strConsultationNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap=EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrConsultationNote strConsultationNote=new StrConsultationNote();
+        strConsultationNote.setRecId(strContentVO.getRecId());
+        strConsultationNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strConsultationNote.setHospitalId(strContentVO.getHospitalId());
+        strConsultationNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strConsultationNote)) {
+            strConsultationNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strConsultationNote);
+        } else {
+            strConsultationNote.setGmtModified(new Date());//记录修改时间
+            this.update(strConsultationNote, new QueryWrapper<StrConsultationNote>()
+                    .eq("rec_id", strConsultationNote.getRecId())
+                    .eq("hospital_id", strConsultationNote.getHospitalId())
+                    .eq("behospital_code", strConsultationNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrConsultationNote strConsultationNote=new StrConsultationNote();
+        try {
+            AStrConsultationNoteVO strConsultationNoteVO=(AStrConsultationNoteVO) MapUtil.mapToObject(entityMap, AStrConsultationNoteVO.class);
+            BeanUtils.copyProperties(strConsultationNoteVO,strConsultationNote);
+            strConsultationNote.setHospitalId(hospitalId);//医院编码
+
+            strConsultationNote.setAuditDate(DateUtil.parseDateTime(strConsultationNoteVO.getAuditDate()));//审核时间
+            strConsultationNote.setRecDate(DateUtil.parseDateTime(strConsultationNoteVO.getRecDate()));//记录时间
+            strConsultationNote.setBehospitalDate(DateUtil.parseDateTime(strConsultationNoteVO.getBehospitalDate()));//入院日期
+            strConsultationNote.setApplyDate(DateUtil.parseDate(strConsultationNoteVO.getApplyDate()));//申请日期
+            strConsultationNote.setRecordDate(DateUtil.parseDateTime(strConsultationNoteVO.getRecordDate()));//病历日期
+            strConsultationNote.setConsultationDate(DateUtil.parseDateTime(strConsultationNoteVO.getConsultationDate()));//会诊时间
+
+            strConsultationNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strConsultationNote)){
+                strConsultationNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strConsultationNote);
+            }else{
+                strConsultationNote.setGmtModified(new Date());//记录修改时间
+                this.update(strConsultationNote,new QueryWrapper<StrConsultationNote>()
+                        .eq("rec_id", strConsultationNote.getRecId())
+                        .eq("hospital_id", strConsultationNote.getHospitalId())
+                        .eq("behospital_code", strConsultationNote.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊单(申请和结果)",strConsultationNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrConsultationNote strConsultationNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationNote>()
+                .eq("rec_id", strConsultationNote.getRecId())
+                .eq("hospital_id", strConsultationNote.getHospitalId())
+                .eq("behospital_code", strConsultationNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:会诊单(申请和结果)-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrConsultationNoteVO> list){
+        try {
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrConsultationNoteVO strConsultationNoteVO:list) {
+                    if("".equals(strConsultationNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strConsultationNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strConsultationNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrConsultationNote> strConsultationNoteList= initData(list);
+                execute(strConsultationNoteList);
+
+                if(logSwitch){
+                    strConsultationNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊单(申请和结果)-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+            list.forEach(s->{
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊单(申请和结果)-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+            });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrConsultationNote> initData(List<StrConsultationNoteVO> list) throws Exception{
+        List<StrConsultationNote> tList=Lists.newArrayList();
+        for (StrConsultationNoteVO s:list) {
+            StrConsultationNote t=new StrConsultationNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getBehospitalDate())){
+                t.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));//入院日期
+            }
+            if(StringUtil.isNotEmpty(s.getApplyDate())){
+                t.setApplyDate(DateUtil.parseDateTime(s.getApplyDate()));//申请日期
+            }
+            if(StringUtil.isNotEmpty(s.getConsultationDate())){
+                t.setConsultationDate(DateUtil.parseDateTime(s.getConsultationDate()));//会诊时间
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.CONSULTATION_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrConsultationNote> list) throws Exception{
+        List<StrConsultationNote> addE = Lists.newLinkedList();
+        List<StrConsultationNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrConsultationNote strConsultationNote = this.getOne(new QueryWrapper<StrConsultationNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strConsultationNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strConsultationNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+}

+ 235 - 0
src/main/java/com/diagbot/facade/str/BStrConsultationRecordFacade.java

@@ -0,0 +1,235 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrConsultationRecord;
+import com.diagbot.entity.StrConsultationRecord;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrConsultationRecordServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.AStrConsultationRecordVO;
+import com.diagbot.vo.str.StrConsultationRecordVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+@Component
+public class BStrConsultationRecordFacade extends StrConsultationRecordServiceImpl {
+
+    @Autowired
+    @Qualifier("strConsultationRecordServiceImpl")
+    private StrConsultationRecordServiceImpl strConsultationRecordService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationRecord");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationRecord");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrConsultationRecord strConsultationRecord=new StrConsultationRecord();
+        strConsultationRecord.setRecId(strContentVO.getRecId());
+        strConsultationRecord.setBehospitalCode(strContentVO.getBehospitalCode());
+        strConsultationRecord.setHospitalId(strContentVO.getHospitalId());
+        strConsultationRecord.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strConsultationRecord)) {
+            strConsultationRecord.setGmtCreate(new Date());//记录创建时间
+            this.save(strConsultationRecord);
+        } else {
+            strConsultationRecord.setGmtModified(new Date());//记录修改时间
+            this.update(strConsultationRecord, new QueryWrapper<StrConsultationRecord>()
+                    .eq("rec_id", strConsultationRecord.getRecId())
+                    .eq("hospital_id", strConsultationRecord.getHospitalId())
+                    .eq("behospital_code", strConsultationRecord.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrConsultationRecord strConsultationRecord=new StrConsultationRecord();
+        try {
+            AStrConsultationRecordVO AStrConsultationRecordVO=(AStrConsultationRecordVO) MapUtil.mapToObject(entityMap, AStrConsultationRecordVO.class);
+            BeanUtils.copyProperties(AStrConsultationRecordVO,strConsultationRecord);
+            strConsultationRecord.setHospitalId(hospitalId);//医院编码
+
+            strConsultationRecord.setRecordDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getRecordDate()));//病历日期recordDate
+            strConsultationRecord.setBehospitalDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getBehospitalDate()));//入院日期behospital_date
+            strConsultationRecord.setApplyDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getApplyDate()));//申请日期apply_date
+            strConsultationRecord.setConsultationDate(DateUtil.parseDate(AStrConsultationRecordVO.getConsultationArriveDate()));//会诊时间consultation_date
+            strConsultationRecord.setRecDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getRecDate()));//记录时间rec_date
+            strConsultationRecord.setAuditDate(DateUtil.parseDateTime(AStrConsultationRecordVO.getAuditDate()));//审核时间audit_date
+
+            strConsultationRecord.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strConsultationRecord)){
+                strConsultationRecord.setGmtCreate(new Date());//记录创建时间
+                this.save(strConsultationRecord);
+            }else{
+                strConsultationRecord.setGmtModified(new Date());//记录修改时间
+                this.update(strConsultationRecord,new QueryWrapper<StrConsultationRecord>()
+                        .eq("rec_id", strConsultationRecord.getRecId())
+                        .eq("hospital_id", strConsultationRecord.getHospitalId())
+                        .eq("behospital_code", strConsultationRecord.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊记录)",strConsultationRecord.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrConsultationRecord strConsultationRecord){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationRecord>()
+                .eq("rec_id", strConsultationRecord.getRecId())
+                .eq("hospital_id", strConsultationRecord.getHospitalId())
+                .eq("behospital_code", strConsultationRecord.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:会诊记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrConsultationRecordVO> list){
+        try {
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrConsultationRecordVO strConsultationRecordVO:list) {
+                    if("".equals(strConsultationRecordVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strConsultationRecordVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strConsultationRecordVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrConsultationRecord> strConsultationRecordList= initData(list);
+                execute(strConsultationRecordList);
+
+                if(logSwitch){
+                    strConsultationRecordList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrConsultationRecord> initData(List<StrConsultationRecordVO> list) throws Exception{
+        List<StrConsultationRecord> tList=Lists.newArrayList();
+        for (StrConsultationRecordVO s:list) {
+            StrConsultationRecord t=new StrConsultationRecord();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getBehospitalDate())){
+                t.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));//入院日期
+            }
+            if(StringUtil.isNotEmpty(s.getApplyDate())){
+                t.setApplyDate(DateUtil.parseDateTime(s.getApplyDate()));//申请日期
+            }
+            if(StringUtil.isNotEmpty(s.getConsultationDate())){
+                t.setConsultationDate(DateUtil.parseDateTime(s.getConsultationDate()));//会诊时间
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.CONSULTATION_RECORD.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrConsultationRecord> list){
+        List<StrConsultationRecord> addE = Lists.newLinkedList();
+        List<StrConsultationRecord> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrConsultationRecord strConsultationRecord = this.getOne(new QueryWrapper<StrConsultationRecord>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strConsultationRecord != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strConsultationRecordService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 241 - 0
src/main/java/com/diagbot/facade/str/BStrConsultationResultFacade.java

@@ -0,0 +1,241 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrConsultationResult;
+import com.diagbot.entity.StrConsultationResult;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrConsultationResultServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrConsultationResultVO;
+import com.diagbot.vo.str.StrConsultationResultVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:会诊结果单-业务类
+ * @Author:liuqq
+ * @time: ${DATE} ${TIME}
+ **/
+@Component
+public class BStrConsultationResultFacade extends StrConsultationResultServiceImpl {
+
+    @Autowired
+    @Qualifier("strConsultationResultServiceImpl")
+    private StrConsultationResultServiceImpl strConsultationResultService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strConsultationResult");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrConsultationResult strConsultationResult=new StrConsultationResult();
+        strConsultationResult.setRecId(strContentVO.getRecId());
+        strConsultationResult.setBehospitalCode(strContentVO.getBehospitalCode());
+        strConsultationResult.setHospitalId(strContentVO.getHospitalId());
+        strConsultationResult.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strConsultationResult)) {
+            strConsultationResult.setGmtCreate(new Date());//记录创建时间
+            this.save(strConsultationResult);
+        } else {
+            strConsultationResult.setGmtModified(new Date());//记录修改时间
+            this.update(strConsultationResult, new QueryWrapper<StrConsultationResult>()
+                    .eq("rec_id", strConsultationResult.getRecId())
+                    .eq("hospital_id", strConsultationResult.getHospitalId())
+                    .eq("behospital_code", strConsultationResult.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrConsultationResult strConsultationResult=new StrConsultationResult();
+        try {
+            AStrConsultationResultVO strConsultationResultVO=(AStrConsultationResultVO) MapUtil.mapToObject(entityMap, AStrConsultationResultVO.class);
+            BeanUtils.copyProperties(strConsultationResultVO,strConsultationResult);
+            strConsultationResult.setHospitalId(hospitalId);//医院编码
+
+            strConsultationResult.setAuditDate(DateUtil.parseDateTime(strConsultationResultVO.getAuditDate()));//审核时间
+            strConsultationResult.setRecDate(DateUtil.parseDateTime(strConsultationResultVO.getRecDate()));//记录时间
+            strConsultationResult.setBehospitalDate(DateUtil.parseDateTime(strConsultationResultVO.getBehospitalDate()));//入院日期
+            strConsultationResult.setApplyDate(DateUtil.parseDate(strConsultationResultVO.getApplyDate()));//申请时间
+            strConsultationResult.setRecordDate(DateUtil.parseDateTime(strConsultationResultVO.getRecordDate()));//病历日期
+            strConsultationResult.setConsultationArriveDate(DateUtil.parseDateTime(strConsultationResultVO.getConsultationArriveDate()));//会诊到达时间
+
+            strConsultationResult.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strConsultationResult)){
+                strConsultationResult.setGmtCreate(new Date());//记录创建时间
+                this.save(strConsultationResult);
+            }else{
+                strConsultationResult.setGmtModified(new Date());//记录修改时间
+                this.update(strConsultationResult,new QueryWrapper<StrConsultationResult>()
+                        .eq("rec_id", strConsultationResult.getRecId())
+                        .eq("hospital_id", strConsultationResult.getHospitalId())
+                        .eq("behospital_code", strConsultationResult.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("会诊结果单",strConsultationResult.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrConsultationResult strConsultationResult){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrConsultationResult>()
+                .eq("rec_id", strConsultationResult.getRecId())
+                .eq("hospital_id", strConsultationResult.getHospitalId())
+                .eq("behospital_code", strConsultationResult.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:会诊结果单-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrConsultationResultVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrConsultationResultVO strConsultationResultVO:list) {
+                    if("".equals(strConsultationResultVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strConsultationResultVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strConsultationResultVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrConsultationResult> strConsultationResultList= initData(list);
+                execute(strConsultationResultList);
+
+                if(logSwitch){
+                    strConsultationResultList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊结果单-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-会诊结果单-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrConsultationResult> initData(List<StrConsultationResultVO> list) throws Exception{
+        List<StrConsultationResult> tList=Lists.newArrayList();
+        for (StrConsultationResultVO s:list) {
+            StrConsultationResult t=new StrConsultationResult();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getBehospitalDate())){
+                t.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));//入院日期
+            }
+            if(StringUtil.isNotEmpty(s.getApplyDate())){
+                t.setApplyDate(DateUtil.parseDateTime(s.getApplyDate()));//申请日期
+            }
+            if(StringUtil.isNotEmpty(s.getConsultationArriveDate())){
+                t.setConsultationArriveDate(DateUtil.parseDateTime(s.getConsultationArriveDate()));//会诊到达时间
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.CONSULTATION_RESULT.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrConsultationResult> list){
+        List<StrConsultationResult> addE = Lists.newLinkedList();
+        List<StrConsultationResult> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrConsultationResult strConsultationResult = this.getOne(new QueryWrapper<StrConsultationResult>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strConsultationResult != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strConsultationResultService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 64 - 0
src/main/java/com/diagbot/facade/str/BStrContentFacade.java

@@ -0,0 +1,64 @@
+package com.diagbot.facade.str;
+
+/**
+ * @Description:文书核心业务处理类
+ * @Author:liuqq
+ * @time: ${DATE} ${TIME}
+ **/
+
+import com.alibaba.fastjson.JSON;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.enums.ModeIdEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.vo.str.StrContentVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class BStrContentFacade {
+
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+
+    @Autowired
+    private ColumnFacade columnFacade;
+
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    @Value("${xml_analyse.enable}")
+    private boolean xmlAnalyse;
+
+    public RespDTO execDealData(StrContentVO strContentVO){
+        try{
+            if("".equals(strContentVO.getModelId())){
+                return RespDTO.onError("请输入模板类型ID!");
+            }else if("".equals(strContentVO.getRecId())) {
+                return RespDTO.onError("请输入记录编号!");
+            }else if(strContentVO.getHospitalId()==null){
+                return RespDTO.onError("请输入医院编码!");
+            }else if("".equals(strContentVO.getBehospitalCode())){
+                return RespDTO.onError("请输入病人住院编码!");
+            }else{
+                //是否进行xml、html、json解析为标准结构化
+                if(xmlAnalyse){
+                    //解析时,调用解析接口
+                    columnFacade.analyseWholeData(strContentVO);
+                }else{
+                    //不解析时,只存储入库
+                    columnFacade.addWholeData(strContentVO);
+                }
+
+                if(logSwitch){
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-文书-正常", strContentVO.getRecId(), JSON.toJSONString(strContentVO), "", ModeIdEnum.getName(Integer.parseInt(strContentVO.getModelId())));
+                }
+                return RespDTO.onSuc("操作正常!");
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-文书-异常", ModeIdEnum.getName(Integer.parseInt(strContentVO.getModelId())), JSON.toJSONString(strContentVO), "", e.getMessage());
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+}

+ 228 - 0
src/main/java/com/diagbot/facade/str/BStrCrisisNoteFacade.java

@@ -0,0 +1,228 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrCrisisNote;
+import com.diagbot.entity.StrCrisisNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrCrisisNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrCrisisNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrCrisisNoteVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrCrisisNoteFacade extends StrCrisisNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strCrisisNoteServiceImpl")
+    private StrCrisisNoteServiceImpl strCrisisNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strCrisisNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrCrisisNote strCrisisNote=new StrCrisisNote();
+        strCrisisNote.setRecId(strContentVO.getRecId());
+        strCrisisNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strCrisisNote.setHospitalId(strContentVO.getHospitalId());
+        strCrisisNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strCrisisNote)) {
+            strCrisisNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strCrisisNote);
+        } else {
+            strCrisisNote.setGmtModified(new Date());//记录修改时间
+            this.update(strCrisisNote, new QueryWrapper<StrCrisisNote>()
+                    .eq("rec_id", strCrisisNote.getRecId())
+                    .eq("hospital_id", strCrisisNote.getHospitalId())
+                    .eq("behospital_code", strCrisisNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrCrisisNote strCrisisNote=new StrCrisisNote();
+        try {
+            AStrCrisisNoteVO strCrisisNoteVO=(AStrCrisisNoteVO) MapUtil.mapToObject(entityMap, AStrCrisisNoteVO.class);
+            BeanUtils.copyProperties(strCrisisNoteVO,strCrisisNote);
+            strCrisisNote.setHospitalId(hospitalId);//医院编码
+
+            strCrisisNote.setAuditDate(DateUtil.parseDateTime(strCrisisNoteVO.getAuditDate()));//审核时间
+            strCrisisNote.setRecDate(DateUtil.parseDateTime(strCrisisNoteVO.getRecDate()));//记录时间
+            strCrisisNote.setRecieveDate(DateUtil.parseDateTime(strCrisisNoteVO.getRecieveDate()));//开始时间
+            strCrisisNote.setAuditDate(DateUtil.parseDate(strCrisisNoteVO.getAuditDate()));//结束时间
+            strCrisisNote.setRecordDate(DateUtil.parseDateTime(strCrisisNoteVO.getRecordDate()));//病历日期
+
+            strCrisisNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strCrisisNote)){
+                strCrisisNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strCrisisNote);
+            }else{
+                strCrisisNote.setGmtModified(new Date());//记录修改时间
+                this.update(strCrisisNote,new QueryWrapper<StrCrisisNote>()
+                        .eq("rec_id", strCrisisNote.getRecId())
+                        .eq("hospital_id", strCrisisNote.getHospitalId())
+                        .eq("behospital_code", strCrisisNote.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("危急值记录",strCrisisNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrCrisisNote strCrisisNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrCrisisNote>()
+                .eq("rec_id", strCrisisNote.getRecId())
+                .eq("hospital_id", strCrisisNote.getHospitalId())
+                .eq("behospital_code", strCrisisNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:危急值记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrCrisisNoteVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrCrisisNoteVO strCrisisNoteVO:list) {
+                    if("".equals(strCrisisNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strCrisisNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strCrisisNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrCrisisNote> strCrisisNoteList= initData(list);
+                execute(strCrisisNoteList);
+
+                if(logSwitch){
+                    strCrisisNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-危急值记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-危急值记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrCrisisNote> initData(List<StrCrisisNoteVO> list) throws Exception{
+        List<StrCrisisNote> tList=Lists.newArrayList();
+        for (StrCrisisNoteVO s:list) {
+            StrCrisisNote t=new StrCrisisNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecieveDate())){
+                t.setRecieveDate(DateUtil.parseDateTime(s.getRecieveDate()));//接收日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.CRISIS_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrCrisisNote> list){
+        List<StrCrisisNote> addE = Lists.newLinkedList();
+        List<StrCrisisNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrCrisisNote strCrisisNote = this.getOne(new QueryWrapper<StrCrisisNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strCrisisNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strCrisisNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 231 - 0
src/main/java/com/diagbot/facade/str/BStrDeathDiscussionFacade.java

@@ -0,0 +1,231 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrDeathDiscussion;
+import com.diagbot.entity.StrDeathDiscussion;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrDeathDiscussionServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrDeathDiscussionVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrDeathDiscussionVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrDeathDiscussionFacade extends StrDeathDiscussionServiceImpl {
+    @Autowired
+    @Qualifier("strDeathDiscussionServiceImpl")
+    private StrDeathDiscussionServiceImpl strDeathDiscussionService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strDeathDiscussion");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrDeathDiscussion strDeathDiscussion=new StrDeathDiscussion();
+        strDeathDiscussion.setRecId(strContentVO.getRecId());
+        strDeathDiscussion.setBehospitalCode(strContentVO.getBehospitalCode());
+        strDeathDiscussion.setHospitalId(strContentVO.getHospitalId());
+        strDeathDiscussion.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strDeathDiscussion)) {
+            strDeathDiscussion.setGmtCreate(new Date());//记录创建时间
+            this.save(strDeathDiscussion);
+        } else {
+            strDeathDiscussion.setGmtModified(new Date());//记录修改时间
+            this.update(strDeathDiscussion, new QueryWrapper<StrDeathDiscussion>()
+                    .eq("rec_id", strDeathDiscussion.getRecId())
+                    .eq("hospital_id", strDeathDiscussion.getHospitalId())
+                    .eq("behospital_code", strDeathDiscussion.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrDeathDiscussion strDeathDiscussion=new StrDeathDiscussion();
+        try {
+            AStrDeathDiscussionVO strDeathDiscussionVO=(AStrDeathDiscussionVO) MapUtil.mapToObject(entityMap, AStrDeathDiscussionVO.class);
+            BeanUtils.copyProperties(strDeathDiscussionVO,strDeathDiscussion);
+            strDeathDiscussion.setHospitalId(hospitalId);//医院编码
+
+            strDeathDiscussion.setAuditDate(DateUtil.parseDateTime(strDeathDiscussionVO.getAuditDate()));//审核时间
+            strDeathDiscussion.setRecDate(DateUtil.parseDateTime(strDeathDiscussionVO.getRecDate()));//记录时间
+            strDeathDiscussion.setDeathDate(DateUtil.parseDateTime(strDeathDiscussionVO.getDeathDate()));//死亡时间
+            strDeathDiscussion.setDiscussDate(DateUtil.parseDate(strDeathDiscussionVO.getDiscussDate()));//讨论时间
+            strDeathDiscussion.setRecordDate(DateUtil.parseDateTime(strDeathDiscussionVO.getRecordDate()));//病历日期
+
+            strDeathDiscussion.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strDeathDiscussion)){
+                strDeathDiscussion.setGmtCreate(new Date());//记录创建时间
+                this.save(strDeathDiscussion);
+            }else{
+                strDeathDiscussion.setGmtModified(new Date());//记录修改时间
+                this.update(strDeathDiscussion,new QueryWrapper<StrDeathDiscussion>()
+                        .eq("rec_id", strDeathDiscussion.getRecId())
+                        .eq("hospital_id", strDeathDiscussion.getHospitalId())
+                        .eq("behospital_code", strDeathDiscussion.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("死亡病例讨论记录",strDeathDiscussion.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrDeathDiscussion strDeathDiscussion){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrDeathDiscussion>()
+                .eq("rec_id", strDeathDiscussion.getRecId())
+                .eq("hospital_id", strDeathDiscussion.getHospitalId())
+                .eq("behospital_code", strDeathDiscussion.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:死亡病例讨论记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrDeathDiscussionVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrDeathDiscussionVO strDeathDiscussionVO:list) {
+                    if("".equals(strDeathDiscussionVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strDeathDiscussionVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strDeathDiscussionVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrDeathDiscussion> strDeathDiscussionList= Lists.newArrayList();
+                execute(strDeathDiscussionList);
+
+                if(logSwitch){
+                    strDeathDiscussionList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡病例讨论记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡病例讨论记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrDeathDiscussion> initData(List<StrDeathDiscussionVO> list) throws Exception{
+        List<StrDeathDiscussion> tList=Lists.newArrayList();
+        for (StrDeathDiscussionVO s:list) {
+            StrDeathDiscussion t=new StrDeathDiscussion();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getDeathDate())){
+                t.setDeathDate(DateUtil.parseDateTime(s.getDeathDate()));//死亡日期
+            }
+            if(StringUtil.isNotEmpty(s.getDiscussDate())){
+                t.setDiscussDate(DateUtil.parseDateTime(s.getDiscussDate()));//讨论时间
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.DEATH_DISCUSSION.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrDeathDiscussion> list){
+        List<StrDeathDiscussion> addE = Lists.newLinkedList();
+        List<StrDeathDiscussion> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrDeathDiscussion strDeathDiscussion = this.getOne(new QueryWrapper<StrDeathDiscussion>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strDeathDiscussion != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strDeathDiscussionService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 229 - 0
src/main/java/com/diagbot/facade/str/BStrDeathNoteFacade.java

@@ -0,0 +1,229 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrDeathNote;
+import com.diagbot.entity.StrDeathNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrDeathNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrDeathNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrDeathNoteVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrDeathNoteFacade extends StrDeathNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strDeathNoteServiceImpl")
+    private StrDeathNoteServiceImpl strDeathNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strDeathNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrDeathNote strDeathNote=new StrDeathNote();
+        strDeathNote.setRecId(strContentVO.getRecId());
+        strDeathNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strDeathNote.setHospitalId(strContentVO.getHospitalId());
+        strDeathNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strDeathNote)) {
+            strDeathNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strDeathNote);
+        } else {
+            strDeathNote.setGmtModified(new Date());//记录修改时间
+            this.update(strDeathNote, new QueryWrapper<StrDeathNote>()
+                    .eq("rec_id", strDeathNote.getRecId())
+                    .eq("hospital_id", strDeathNote.getHospitalId())
+                    .eq("behospital_code", strDeathNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrDeathNote strDeathNote=new StrDeathNote();
+        try {
+            AStrDeathNoteVO strDeathNoteVO=(AStrDeathNoteVO) MapUtil.mapToObject(entityMap, AStrDeathNoteVO.class);
+            BeanUtils.copyProperties(strDeathNoteVO,strDeathNote);
+            strDeathNote.setHospitalId(hospitalId);//医院编码
+
+            strDeathNote.setAuditDate(DateUtil.parseDateTime(strDeathNoteVO.getAuditDate()));//审核时间
+            strDeathNote.setRecDate(DateUtil.parseDateTime(strDeathNoteVO.getRecDate()));//记录时间
+            strDeathNote.setBehospitalDate(DateUtil.parseDateTime(strDeathNoteVO.getBehospitalDate()));//入院日期
+            strDeathNote.setDeathDate(DateUtil.parseDate(strDeathNoteVO.getDeathDate()));//死亡日期
+            strDeathNote.setRecordDate(DateUtil.parseDateTime(strDeathNoteVO.getRecordDate()));//病历日期
+
+            strDeathNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strDeathNote)){
+                strDeathNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strDeathNote);
+            }else{
+                strDeathNote.setGmtModified(new Date());//记录修改时间
+                this.update(strDeathNote,new QueryWrapper<StrDeathNote>()
+                        .eq("rec_id", strDeathNote.getRecId())
+                        .eq("hospital_id", strDeathNote.getHospitalId())
+                        .eq("behospital_code", strDeathNote.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("死亡记录", strDeathNote.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrDeathNote strDeathNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrDeathNote>()
+                .eq("rec_id", strDeathNote.getRecId())
+                .eq("hospital_id", strDeathNote.getHospitalId())
+                .eq("behospital_code", strDeathNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:死亡记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrDeathNoteVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrDeathNoteVO strDeathNoteVO:list) {
+                    if("".equals(strDeathNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strDeathNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strDeathNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrDeathNote> strDeathNoteList= initData(list);
+                execute(strDeathNoteList);
+
+                if(logSwitch){
+                    strDeathNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-死亡记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrDeathNote> initData(List<StrDeathNoteVO> list) throws Exception{
+        List<StrDeathNote> tList=Lists.newArrayList();
+        for (StrDeathNoteVO s:list) {
+            StrDeathNote t=new StrDeathNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getDeathDate())){
+                t.setDeathDate(DateUtil.parseDateTime(s.getDeathDate()));//死亡日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.DEATH_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrDeathNote> list){
+        List<StrDeathNote> addE = Lists.newLinkedList();
+        List<StrDeathNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrDeathNote strDeathNote = this.getOne(new QueryWrapper<StrDeathNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strDeathNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strDeathNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 227 - 0
src/main/java/com/diagbot/facade/str/BStrDifficultCaseFacade.java

@@ -0,0 +1,227 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrDifficultCase;
+import com.diagbot.entity.StrDifficultCase;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrDifficultCaseServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrDifficultCaseVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrDifficultCaseVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrDifficultCaseFacade extends StrDifficultCaseServiceImpl{
+
+    @Autowired
+    @Qualifier("strDifficultCaseServiceImpl")
+    private StrDifficultCaseServiceImpl strDifficultCaseService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strDifficultCase");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrDifficultCase medDifficult=new StrDifficultCase();
+        medDifficult.setRecId(strContentVO.getRecId());
+        medDifficult.setBehospitalCode(strContentVO.getBehospitalCode());
+        medDifficult.setHospitalId(strContentVO.getHospitalId());
+        medDifficult.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(medDifficult)) {
+            medDifficult.setGmtCreate(new Date());//记录创建时间
+            this.save(medDifficult);
+        } else {
+            medDifficult.setGmtModified(new Date());//记录修改时间
+            this.update(medDifficult, new QueryWrapper<StrDifficultCase>()
+                    .eq("rec_id", medDifficult.getRecId())
+                    .eq("hospital_id", medDifficult.getHospitalId())
+                    .eq("behospital_code", medDifficult.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrDifficultCase medDifficult=new StrDifficultCase();
+        try {
+            AStrDifficultCaseVO medDifficultVO=(AStrDifficultCaseVO) MapUtil.mapToObject(entityMap, AStrDifficultCaseVO.class);
+            BeanUtils.copyProperties(medDifficultVO,medDifficult);
+            medDifficult.setHospitalId(hospitalId);//医院编码
+            medDifficult.setRecDate(DateUtil.parseDateTime(medDifficultVO.getRecDate()));
+            medDifficult.setAuditDate(DateUtil.parseDateTime(medDifficultVO.getAuditDate()));
+            medDifficult.setDiscussDate(DateUtil.parseDateTime(medDifficultVO.getDiscussDate()));
+            medDifficult.setRecordDate(DateUtil.parseDateTime(medDifficultVO.getRecordDate()));//病历日期
+
+            medDifficult.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(medDifficult)){
+                medDifficult.setGmtCreate(new Date());//记录创建时间
+                this.save(medDifficult);
+            }else{
+                medDifficult.setGmtModified(new Date());//记录修改时间
+                this.update(medDifficult,new QueryWrapper<StrDifficultCase>()
+                        .eq("rec_id", medDifficult.getRecId())
+                        .eq("hospital_id", medDifficult.getHospitalId())
+                        .eq("behospital_code", medDifficult.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("疑难病例讨论记录",medDifficult.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrDifficultCase medDifficult){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrDifficultCase>()
+                .eq("rec_id", medDifficult.getRecId())
+                .eq("hospital_id", medDifficult.getHospitalId())
+                .eq("behospital_code", medDifficult.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:疑难病例讨论记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrDifficultCaseVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrDifficultCaseVO strDifficultCaseVO:list) {
+                    if("".equals(strDifficultCaseVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strDifficultCaseVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strDifficultCaseVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrDifficultCase> strDifficultCaseList= initData(list);
+                execute(strDifficultCaseList);
+
+                if(logSwitch){
+                    strDifficultCaseList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-疑难病例讨论记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-疑难病例讨论记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrDifficultCase> initData(List<StrDifficultCaseVO> list) throws Exception{
+        List<StrDifficultCase> tList=Lists.newArrayList();
+        for (StrDifficultCaseVO s:list) {
+            StrDifficultCase t=new StrDifficultCase();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getDiscussDate())){
+                t.setDiscussDate(DateUtil.parseDateTime(s.getDiscussDate()));//讨论日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.DIFFICULT_CASE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrDifficultCase> list){
+        List<StrDifficultCase> addE = Lists.newLinkedList();
+        List<StrDifficultCase> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrDifficultCase strDifficultCase = this.getOne(new QueryWrapper<StrDifficultCase>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strDifficultCase != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strDifficultCaseService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 224 - 0
src/main/java/com/diagbot/facade/str/BStrFirstRecordFacade.java

@@ -0,0 +1,224 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrFirstRecord;
+import com.diagbot.entity.StrFirstRecord;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrFirstRecordServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrFirstRecordVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrFirstRecordVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrFirstRecordFacade extends StrFirstRecordServiceImpl {
+
+    @Autowired
+    @Qualifier("strFirstRecordServiceImpl")
+    private StrFirstRecordServiceImpl strFirstRecordService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strFirstRecord");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrFirstRecord medDifficult=new StrFirstRecord();
+        medDifficult.setRecId(strContentVO.getRecId());
+        medDifficult.setBehospitalCode(strContentVO.getBehospitalCode());
+        medDifficult.setHospitalId(strContentVO.getHospitalId());
+        medDifficult.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(medDifficult)) {
+            medDifficult.setGmtCreate(new Date());//记录创建时间
+            this.save(medDifficult);
+        } else {
+            medDifficult.setGmtModified(new Date());//记录修改时间
+            this.update(medDifficult, new QueryWrapper<StrFirstRecord>()
+                    .eq("rec_id", medDifficult.getRecId())
+                    .eq("hospital_id", medDifficult.getHospitalId())
+                    .eq("behospital_code", medDifficult.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrFirstRecord strFirstRecord=new StrFirstRecord();
+        try {
+            AStrFirstRecordVO strFirstRecordVO=(AStrFirstRecordVO) MapUtil.mapToObject(entityMap, AStrFirstRecordVO.class);
+            BeanUtils.copyProperties(strFirstRecordVO,strFirstRecord);
+            strFirstRecord.setHospitalId(hospitalId);//医院编码
+
+            strFirstRecord.setAuditDate(DateUtil.parseDateTime(strFirstRecordVO.getAuditDate()));//审核时间
+            strFirstRecord.setRecDate(DateUtil.parseDateTime(strFirstRecordVO.getRecDate()));//记录时间
+            strFirstRecord.setRecordDate(DateUtil.parseDateTime(strFirstRecordVO.getRecordDate()));//病历日期
+
+            strFirstRecord.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strFirstRecord)){
+                strFirstRecord.setGmtCreate(new Date());//记录创建时间
+                this.save(strFirstRecord);
+            }else{
+                strFirstRecord.setGmtModified(new Date());//记录修改时间
+                this.update(strFirstRecord,new QueryWrapper<StrFirstRecord>()
+                        .eq("rec_id", strFirstRecord.getRecId())
+                        .eq("hospital_id", strFirstRecord.getHospitalId())
+                        .eq("behospital_code", strFirstRecord.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("首次病程录", strFirstRecord.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrFirstRecord strFirstRecord){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrFirstRecord>()
+                .eq("rec_id", strFirstRecord.getRecId())
+                .eq("hospital_id", strFirstRecord.getHospitalId())
+                .eq("behospital_code", strFirstRecord.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:首次病程录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrFirstRecordVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrFirstRecordVO strFirstRecordVO:list) {
+                    if("".equals(strFirstRecordVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strFirstRecordVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strFirstRecordVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrFirstRecord> strFirstRecordList= initData(list);
+                execute(strFirstRecordList);
+
+                if(logSwitch){
+                    strFirstRecordList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-首次病程录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-首次病程录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrFirstRecord> initData(List<StrFirstRecordVO> list) throws Exception{
+        List<StrFirstRecord> tList=Lists.newArrayList();
+        for (StrFirstRecordVO s:list) {
+            StrFirstRecord t=new StrFirstRecord();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.FIRST_RECORD.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrFirstRecord> list){
+        List<StrFirstRecord> addE = Lists.newLinkedList();
+        List<StrFirstRecord> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrFirstRecord strFirstRecord = this.getOne(new QueryWrapper<StrFirstRecord>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strFirstRecord != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strFirstRecordService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 223 - 0
src/main/java/com/diagbot/facade/str/BStrIllCriticallyFacade.java

@@ -0,0 +1,223 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrIllCritically;
+import com.diagbot.entity.StrIllCritically;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrIllCriticallyServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrIllCriticallyVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrIllCriticallyVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrIllCriticallyFacade extends StrIllCriticallyServiceImpl {
+
+    @Autowired
+    @Qualifier("strIllCriticallyServiceImpl")
+    private StrIllCriticallyServiceImpl strIllCriticallyService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strIllCritically");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrIllCritically strIllCritically=new StrIllCritically();
+        strIllCritically.setRecId(strContentVO.getRecId());
+        strIllCritically.setBehospitalCode(strContentVO.getBehospitalCode());
+        strIllCritically.setHospitalId(strContentVO.getHospitalId());
+        strIllCritically.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strIllCritically)) {
+            strIllCritically.setGmtCreate(new Date());//记录创建时间
+            this.save(strIllCritically);
+        } else {
+            strIllCritically.setGmtModified(new Date());//记录修改时间
+            this.update(strIllCritically, new QueryWrapper<StrIllCritically>()
+                    .eq("rec_id", strIllCritically.getRecId())
+                    .eq("hospital_id", strIllCritically.getHospitalId())
+                    .eq("behospital_code", strIllCritically.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrIllCritically strIllCritically=new StrIllCritically();
+        try {
+            AStrIllCriticallyVO strIllCriticallyVO=(AStrIllCriticallyVO) MapUtil.mapToObject(entityMap, AStrIllCriticallyVO.class);
+            BeanUtils.copyProperties(strIllCriticallyVO,strIllCritically);
+            strIllCritically.setHospitalId(hospitalId);//医院编码
+            strIllCritically.setPatientSignDate(DateUtil.parseDateTime(strIllCriticallyVO.getPatientSignDate()));
+            strIllCritically.setDoctorSignDate(DateUtil.parseDateTime(strIllCriticallyVO.getDoctorSignDate()));//审核时间
+            strIllCritically.setRecordDate(DateUtil.parseDateTime(strIllCriticallyVO.getRecordDate()));//病历日期
+
+            strIllCritically.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strIllCritically)){
+                strIllCritically.setGmtCreate(new Date());//记录创建时间
+                this.save(strIllCritically);
+            }else{
+                strIllCritically.setGmtModified(new Date());//记录修改时间
+                this.update(strIllCritically,new QueryWrapper<StrIllCritically>()
+                        .eq("rec_id", strIllCritically.getRecId())
+                        .eq("hospital_id", strIllCritically.getHospitalId())
+                        .eq("behospital_code", strIllCritically.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病危通知单",strIllCritically.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrIllCritically strIllCritically){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrIllCritically>()
+                .eq("rec_id", strIllCritically.getRecId())
+                .eq("hospital_id", strIllCritically.getHospitalId())
+                .eq("behospital_code", strIllCritically.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:病危通知单-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrIllCriticallyVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrIllCriticallyVO strIllCriticallyVO:list) {
+                    if("".equals(strIllCriticallyVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strIllCriticallyVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strIllCriticallyVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrIllCritically> strIllCriticallyList= initData(list);
+                execute(strIllCriticallyList);
+
+                if(logSwitch){
+                    strIllCriticallyList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病危通知单-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病危通知单-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrIllCritically> initData(List<StrIllCriticallyVO> list) throws Exception{
+        List<StrIllCritically> tList=Lists.newArrayList();
+        for (StrIllCriticallyVO s:list) {
+            StrIllCritically t=new StrIllCritically();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getPatientSignDate())){
+                t.setPatientSignDate(DateUtil.parseDateTime(s.getPatientSignDate()));//病人签名日期
+            }
+            if(StringUtil.isNotEmpty(s.getDoctorSignDate())){
+                t.setDoctorSignDate(DateUtil.parseDateTime(s.getDoctorSignDate()));//医生签名日期
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.ILL_CRITICALLY.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrIllCritically> list){
+        List<StrIllCritically> addE = Lists.newLinkedList();
+        List<StrIllCritically> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrIllCritically strIllCritically = this.getOne(new QueryWrapper<StrIllCritically>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strIllCritically != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strIllCriticallyService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 223 - 0
src/main/java/com/diagbot/facade/str/BStrIllSeriouslFacade.java

@@ -0,0 +1,223 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrIllSeriousl;
+import com.diagbot.entity.StrIllSeriousl;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrIllSeriouslServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrIllSeriouslVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrIllSeriouslVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrIllSeriouslFacade extends StrIllSeriouslServiceImpl {
+
+    @Autowired
+    @Qualifier("strIllSeriouslServiceImpl")
+    private StrIllSeriouslServiceImpl strIllSeriouslService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strIllSeriousl");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrIllSeriousl strIllSeriousl=new StrIllSeriousl();
+        strIllSeriousl.setRecId(strContentVO.getRecId());
+        strIllSeriousl.setBehospitalCode(strContentVO.getBehospitalCode());
+        strIllSeriousl.setHospitalId(strContentVO.getHospitalId());
+        strIllSeriousl.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strIllSeriousl)) {
+            strIllSeriousl.setGmtCreate(new Date());//记录创建时间
+            this.save(strIllSeriousl);
+        } else {
+            strIllSeriousl.setGmtModified(new Date());//记录修改时间
+            this.update(strIllSeriousl, new QueryWrapper<StrIllSeriousl>()
+                    .eq("rec_id", strIllSeriousl.getRecId())
+                    .eq("hospital_id", strIllSeriousl.getHospitalId())
+                    .eq("behospital_code", strIllSeriousl.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrIllSeriousl strIllSeriousl=new StrIllSeriousl();
+        try {
+            AStrIllSeriouslVO strIllSeriouslVO=(AStrIllSeriouslVO) MapUtil.mapToObject(entityMap, AStrIllSeriouslVO.class);
+            BeanUtils.copyProperties(strIllSeriouslVO,strIllSeriousl);
+            strIllSeriousl.setHospitalId(hospitalId);//医院编码
+            strIllSeriousl.setPatientSignDate(DateUtil.parseDateTime(strIllSeriouslVO.getPatientSignDate()));
+            strIllSeriousl.setDoctorSignDate(DateUtil.parseDateTime(strIllSeriouslVO.getDoctorSignDate()));//审核时间
+            strIllSeriousl.setRecordDate(DateUtil.parseDateTime(strIllSeriouslVO.getRecordDate()));//病历日期
+
+            strIllSeriousl.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strIllSeriousl)){
+                strIllSeriousl.setGmtCreate(new Date());//记录创建时间
+                this.save(strIllSeriousl);
+            }else{
+                strIllSeriousl.setGmtModified(new Date());//记录修改时间
+                this.update(strIllSeriousl,new QueryWrapper<StrIllSeriousl>()
+                        .eq("rec_id", strIllSeriousl.getRecId())
+                        .eq("hospital_id", strIllSeriousl.getHospitalId())
+                        .eq("behospital_code", strIllSeriousl.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病重通知单", strIllSeriousl.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrIllSeriousl strIllSeriousl){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrIllSeriousl>()
+                .eq("rec_id", strIllSeriousl.getRecId())
+                .eq("hospital_id", strIllSeriousl.getHospitalId())
+                .eq("behospital_code", strIllSeriousl.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:病重通知单-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrIllSeriouslVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrIllSeriouslVO strIllSeriouslVO:list) {
+                    if("".equals(strIllSeriouslVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strIllSeriouslVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strIllSeriouslVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrIllSeriousl> strIllSeriouslList= initData(list);
+                execute(strIllSeriouslList);
+
+                if(logSwitch){
+                    strIllSeriouslList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病重通知单-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-病重通知单-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrIllSeriousl> initData(List<StrIllSeriouslVO> list) throws Exception{
+        List<StrIllSeriousl> tList=Lists.newArrayList();
+        for (StrIllSeriouslVO s:list) {
+            StrIllSeriousl t=new StrIllSeriousl();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getPatientSignDate())){
+                t.setPatientSignDate(DateUtil.parseDateTime(s.getPatientSignDate()));//病人签名日期
+            }
+            if(StringUtil.isNotEmpty(s.getDoctorSignDate())){
+                t.setDoctorSignDate(DateUtil.parseDateTime(s.getDoctorSignDate()));//医生签名日期
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.ILL_SERIOUSL.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrIllSeriousl> list){
+        List<StrIllSeriousl> addE = Lists.newLinkedList();
+        List<StrIllSeriousl> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrIllSeriousl strIllSeriousl = this.getOne(new QueryWrapper<StrIllSeriousl>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strIllSeriousl != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strIllSeriouslService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 198 - 0
src/main/java/com/diagbot/facade/str/BStrInformedConsentFacade.java

@@ -0,0 +1,198 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrInformedConsent;
+import com.diagbot.entity.StrInformedConsent;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrInformedConsentServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrInformedConsentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrInformedConsentFacade extends StrInformedConsentServiceImpl {
+
+    @Autowired
+    @Qualifier("strInformedConsentServiceImpl")
+    private StrInformedConsentServiceImpl strInformedConsentService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strInformedConsent");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrInformedConsent strInformedConsent=new StrInformedConsent();
+        strInformedConsent.setRecId(strContentVO.getRecId());
+        strInformedConsent.setBehospitalCode(strContentVO.getBehospitalCode());
+        strInformedConsent.setHospitalId(strContentVO.getHospitalId());
+        //strInformedConsent.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strInformedConsent)) {
+            strInformedConsent.setGmtCreate(new Date());//记录创建时间
+            this.save(strInformedConsent);
+        } else {
+            strInformedConsent.setGmtModified(new Date());//记录修改时间
+            this.update(strInformedConsent, new QueryWrapper<StrInformedConsent>()
+                    .eq("rec_id", strInformedConsent.getRecId())
+                    .eq("hospital_id", strInformedConsent.getHospitalId())
+                    .eq("behospital_code", strInformedConsent.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrInformedConsent strInformedConsent=new StrInformedConsent();
+        try {
+            StrInformedConsentVO strInformedConsentVO=(StrInformedConsentVO) MapUtil.mapToObject(entityMap, StrInformedConsentVO.class);
+            BeanUtils.copyProperties(strInformedConsentVO,strInformedConsent);
+            strInformedConsent.setHospitalId(hospitalId);//医院编码
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strInformedConsent)){
+                strInformedConsent.setGmtCreate(new Date());//记录创建时间
+                this.save(strInformedConsent);
+            }else{
+                strInformedConsent.setGmtModified(new Date());//记录修改时间
+                this.update(strInformedConsent,new QueryWrapper<StrInformedConsent>()
+                        .eq("rec_id", strInformedConsent.getRecId())
+                        .eq("hospital_id", strInformedConsent.getHospitalId())
+                        .eq("behospital_code", strInformedConsent.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病重通知单", strInformedConsent.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrInformedConsent strInformedConsent){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrInformedConsent>()
+                .eq("rec_id", strInformedConsent.getRecId())
+                .eq("hospital_id", strInformedConsent.getHospitalId())
+                .eq("behospital_code", strInformedConsent.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:知情同意书-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrInformedConsentVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrInformedConsentVO strInformedConsentVO:list) {
+                    if("".equals(strInformedConsentVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strInformedConsentVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strInformedConsentVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrInformedConsent> strInformedConsentList= initData(list);
+                execute(strInformedConsentList);
+
+                if(logSwitch){
+                    strInformedConsentList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-知情同意书-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-知情同意书-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrInformedConsent> initData(List<StrInformedConsentVO> list) throws Exception{
+        List<StrInformedConsent> tList= Lists.newArrayList();
+        for (StrInformedConsentVO s:list) {
+            StrInformedConsent t=new StrInformedConsent();
+            BeanUtils.copyProperties(s,t);
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrInformedConsent> list){
+        List<StrInformedConsent> addE = Lists.newLinkedList();
+        List<StrInformedConsent> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrInformedConsent strInformedConsent = this.getOne(new QueryWrapper<StrInformedConsent>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strInformedConsent != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strInformedConsentService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 232 - 0
src/main/java/com/diagbot/facade/str/BStrLeaveHospitalFacade.java

@@ -0,0 +1,232 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrLeaveHospital;
+import com.diagbot.entity.StrLeaveHospital;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrLeaveHospitalServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrLeaveHospitalVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrLeaveHospitalVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrLeaveHospitalFacade extends StrLeaveHospitalServiceImpl {
+
+    @Autowired
+    @Qualifier("strLeaveHospitalServiceImpl")
+    private StrLeaveHospitalServiceImpl strLeaveHospitalService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strLeaveHospital");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrLeaveHospital strLeaveHospital=new StrLeaveHospital();
+        strLeaveHospital.setRecId(strContentVO.getRecId());
+        strLeaveHospital.setBehospitalCode(strContentVO.getBehospitalCode());
+        strLeaveHospital.setHospitalId(strContentVO.getHospitalId());
+        strLeaveHospital.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strLeaveHospital)) {
+            strLeaveHospital.setGmtCreate(new Date());//记录创建时间
+            this.save(strLeaveHospital);
+        } else {
+            strLeaveHospital.setGmtModified(new Date());//记录修改时间
+            this.update(strLeaveHospital, new QueryWrapper<StrLeaveHospital>()
+                    .eq("rec_id", strLeaveHospital.getRecId())
+                    .eq("hospital_id", strLeaveHospital.getHospitalId())
+                    .eq("behospital_code", strLeaveHospital.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrLeaveHospital strLeaveHospital=new StrLeaveHospital();
+        try {
+            AStrLeaveHospitalVO strLeaveHospitalVO=(AStrLeaveHospitalVO) MapUtil.mapToObject(entityMap, AStrLeaveHospitalVO.class);
+            BeanUtils.copyProperties(strLeaveHospitalVO,strLeaveHospital);
+            strLeaveHospital.setHospitalId(hospitalId);//医院编码
+
+            strLeaveHospital.setAuditDate(DateUtil.parseDateTime(strLeaveHospitalVO.getAuditDate()));//审核时间
+            strLeaveHospital.setRecDate(DateUtil.parseDateTime(strLeaveHospitalVO.getRecDate()));//记录时间
+            strLeaveHospital.setBehospitalDate(DateUtil.parseDateTime(strLeaveHospitalVO.getBehospitalDate()));//入院日期
+            strLeaveHospital.setLeaveHospitalDate(DateUtil.parseDateTime(strLeaveHospitalVO.getLeaveHospitalDate()));//出院时间
+            strLeaveHospital.setRecordDate(DateUtil.parseDateTime(strLeaveHospitalVO.getRecordDate()));//病历日期
+
+            strLeaveHospital.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strLeaveHospital)){
+                strLeaveHospital.setGmtCreate(new Date());//记录创建时间
+                this.save(strLeaveHospital);
+            }else{
+                strLeaveHospital.setGmtModified(new Date());//记录修改时间
+                this.update(strLeaveHospital,new QueryWrapper<StrLeaveHospital>()
+                        .eq("rec_id", strLeaveHospital.getRecId())
+                        .eq("hospital_id", strLeaveHospital.getHospitalId())
+                        .eq("behospital_code", strLeaveHospital.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("出院小结",strLeaveHospital.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrLeaveHospital strLeaveHospital){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrLeaveHospital>()
+                .eq("rec_id", strLeaveHospital.getRecId())
+                .eq("hospital_id", strLeaveHospital.getHospitalId())
+                .eq("behospital_code", strLeaveHospital.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:出院小结-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrLeaveHospitalVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrLeaveHospitalVO strLeaveHospitalVO:list) {
+                    if("".equals(strLeaveHospitalVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strLeaveHospitalVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strLeaveHospitalVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrLeaveHospital> strLeaveHospitalList= initData(list);
+                execute(strLeaveHospitalList);
+
+                if(logSwitch){
+                    strLeaveHospitalList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-出院小结-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-出院小结-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrLeaveHospital> initData(List<StrLeaveHospitalVO> list) throws Exception{
+        List<StrLeaveHospital> tList=Lists.newArrayList();
+        for (StrLeaveHospitalVO s:list) {
+            StrLeaveHospital t=new StrLeaveHospital();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getBehospitalDate())){
+                t.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));//入院日期
+            }
+            if(StringUtil.isNotEmpty(s.getLeaveHospitalDate())){
+                t.setLeaveHospitalDate(DateUtil.parseDateTime(s.getLeaveHospitalDate()));//出院日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.LEAVE_HOSPITAL.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrLeaveHospital> list){
+        List<StrLeaveHospital> addE = Lists.newLinkedList();
+        List<StrLeaveHospital> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrLeaveHospital strLeaveHospital = this.getOne(new QueryWrapper<StrLeaveHospital>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strLeaveHospital != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strLeaveHospitalService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 235 - 0
src/main/java/com/diagbot/facade/str/BStrOperativeFirstRecordFacade.java

@@ -0,0 +1,235 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrOperativeFirstRecord;
+import com.diagbot.entity.StrOperativeFirstRecord;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrOperativeFirstRecordServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrOperativeFirstRecordVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrOperativeFirstRecordVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrOperativeFirstRecordFacade extends StrOperativeFirstRecordServiceImpl {
+
+    @Autowired
+    @Qualifier("strOperativeFirstRecordServiceImpl")
+    private StrOperativeFirstRecordServiceImpl strOperativeFirstRecordService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strOperativeFirstRecord");
+
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrOperativeFirstRecord strOperativeFirstRecord=new StrOperativeFirstRecord();
+        strOperativeFirstRecord.setRecId(strContentVO.getRecId());
+        strOperativeFirstRecord.setBehospitalCode(strContentVO.getBehospitalCode());
+        strOperativeFirstRecord.setHospitalId(strContentVO.getHospitalId());
+        strOperativeFirstRecord.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strOperativeFirstRecord)) {
+            strOperativeFirstRecord.setGmtCreate(new Date());//记录创建时间
+            this.save(strOperativeFirstRecord);
+        } else {
+            strOperativeFirstRecord.setGmtModified(new Date());//记录修改时间
+            this.update(strOperativeFirstRecord, new QueryWrapper<StrOperativeFirstRecord>()
+                    .eq("rec_id", strOperativeFirstRecord.getRecId())
+                    .eq("hospital_id", strOperativeFirstRecord.getHospitalId())
+                    .eq("behospital_code", strOperativeFirstRecord.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrOperativeFirstRecord strOperativeFirstRecord=new StrOperativeFirstRecord();
+        try {
+            AStrOperativeFirstRecordVO strOperativeFirstRecordVO=(AStrOperativeFirstRecordVO) MapUtil.mapToObject(entityMap, AStrOperativeFirstRecordVO.class);
+            BeanUtils.copyProperties(strOperativeFirstRecordVO,strOperativeFirstRecord);
+            strOperativeFirstRecord.setHospitalId(hospitalId);//医院编码
+
+            strOperativeFirstRecord.setAuditDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getAuditDate()));//审核时间
+            strOperativeFirstRecord.setRecDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getRecDate()));//记录时间
+            strOperativeFirstRecord.setOperationDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getOperationDate()));//手术日期
+            strOperativeFirstRecord.setStartTime(DateUtil.parseDate(strOperativeFirstRecordVO.getStartTime()));//开始时间
+            strOperativeFirstRecord.setEndTime(DateUtil.parseDate(strOperativeFirstRecordVO.getEndTime()));//结束时间
+            strOperativeFirstRecord.setRecordDate(DateUtil.parseDateTime(strOperativeFirstRecordVO.getRecordDate()));//病历日期
+
+            strOperativeFirstRecord.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strOperativeFirstRecord)){
+                strOperativeFirstRecord.setGmtCreate(new Date());//记录创建时间
+                this.save(strOperativeFirstRecord);
+            }else{
+                strOperativeFirstRecord.setGmtModified(new Date());//记录修改时间
+                this.update(strOperativeFirstRecord,new QueryWrapper<StrOperativeFirstRecord>()
+                        .eq("rec_id", strOperativeFirstRecord.getRecId())
+                        .eq("hospital_id", strOperativeFirstRecord.getHospitalId())
+                        .eq("behospital_code", strOperativeFirstRecord.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("术后首程",strOperativeFirstRecord.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrOperativeFirstRecord strOperativeFirstRecord){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrOperativeFirstRecord>()
+                .eq("rec_id", strOperativeFirstRecord.getRecId())
+                .eq("hospital_id", strOperativeFirstRecord.getHospitalId())
+                .eq("behospital_code", strOperativeFirstRecord.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:术后首程-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrOperativeFirstRecordVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrOperativeFirstRecordVO strOperativeFirstRecordVO:list) {
+                    if("".equals(strOperativeFirstRecordVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strOperativeFirstRecordVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strOperativeFirstRecordVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrOperativeFirstRecord> strOperativeFirstRecordList= initData(list);
+                execute(strOperativeFirstRecordList);
+
+                if(logSwitch){
+                    strOperativeFirstRecordList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术后首程-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术后首程-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrOperativeFirstRecord> initData(List<StrOperativeFirstRecordVO> list) throws Exception{
+        List<StrOperativeFirstRecord> tList=Lists.newArrayList();
+        for (StrOperativeFirstRecordVO s:list) {
+            StrOperativeFirstRecord t=new StrOperativeFirstRecord();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            if(StringUtil.isNotEmpty(s.getOperationDate())){
+                t.setOperationDate(DateUtil.parseDateTime(s.getOperationDate()));//手术日期
+            }
+            if(StringUtil.isNotEmpty(s.getStartTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getStartTime()));//开始时间
+            }
+            if(StringUtil.isNotEmpty(s.getEndTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getEndTime()));//结束时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.OPERATIVE_FIRST_RECORD.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrOperativeFirstRecord> list){
+        List<StrOperativeFirstRecord> addE = Lists.newLinkedList();
+        List<StrOperativeFirstRecord> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrOperativeFirstRecord strOperativeFirstRecord = this.getOne(new QueryWrapper<StrOperativeFirstRecord>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strOperativeFirstRecord != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strOperativeFirstRecordService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 236 - 0
src/main/java/com/diagbot/facade/str/BStrOperativeNoteFacade.java

@@ -0,0 +1,236 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrOperativeNote;
+import com.diagbot.entity.StrOperativeNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrOperativeNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrOperativeNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrOperativeNoteVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrOperativeNoteFacade extends StrOperativeNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strOperativeNoteServiceImpl")
+    private StrOperativeNoteServiceImpl strOperativeNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strOperativeNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrOperativeNote strOperativeNote=new StrOperativeNote();
+        strOperativeNote.setRecId(strContentVO.getRecId());
+        strOperativeNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strOperativeNote.setHospitalId(strContentVO.getHospitalId());
+        strOperativeNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strOperativeNote)) {
+            strOperativeNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strOperativeNote);
+        } else {
+            strOperativeNote.setGmtModified(new Date());//记录修改时间
+            this.update(strOperativeNote, new QueryWrapper<StrOperativeNote>()
+                    .eq("rec_id", strOperativeNote.getRecId())
+                    .eq("hospital_id", strOperativeNote.getHospitalId())
+                    .eq("behospital_code", strOperativeNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrOperativeNote strOperativeNote=new StrOperativeNote();
+        try {
+            AStrOperativeNoteVO strOperativeNoteVO=(AStrOperativeNoteVO) MapUtil.mapToObject(entityMap, AStrOperativeNoteVO.class);
+            BeanUtils.copyProperties(strOperativeNoteVO,strOperativeNote);
+            strOperativeNote.setHospitalId(hospitalId);//医院编码
+
+            strOperativeNote.setAuditDate(DateUtil.parseDateTime(strOperativeNoteVO.getAuditDate()));//审核时间
+            strOperativeNote.setRecDate(DateUtil.parseDateTime(strOperativeNoteVO.getRecDate()));//记录时间
+            strOperativeNote.setOperationDate(DateUtil.parseDateTime(strOperativeNoteVO.getOperationDate()));//手术日期
+            strOperativeNote.setStartTime(DateUtil.parseDate(strOperativeNoteVO.getStartTime()));//开始时间
+            strOperativeNote.setEndTime(DateUtil.parseDate(strOperativeNoteVO.getEndTime()));//结束时间
+            strOperativeNote.setRecordDate(DateUtil.parseDateTime(strOperativeNoteVO.getRecordDate()));//病历日期
+
+            strOperativeNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strOperativeNote)){
+                strOperativeNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strOperativeNote);
+            }else{
+                strOperativeNote.setGmtModified(new Date());//记录修改时间
+                this.update(strOperativeNote,new QueryWrapper<StrOperativeNote>()
+                        .eq("rec_id", strOperativeNote.getRecId())
+                        .eq("hospital_id", strOperativeNote.getHospitalId())
+                        .eq("behospital_code", strOperativeNote.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("手术记录", strOperativeNote.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrOperativeNote strOperativeNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrOperativeNote>()
+                .eq("rec_id", strOperativeNote.getRecId())
+                .eq("hospital_id", strOperativeNote.getHospitalId())
+                .eq("behospital_code", strOperativeNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:手术记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrOperativeNoteVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrOperativeNoteVO strOperativeNoteVO:list) {
+                    if("".equals(strOperativeNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strOperativeNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strOperativeNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrOperativeNote> strOperativeNoteList= initData(list);
+                execute(strOperativeNoteList);
+
+                if(logSwitch){
+                    strOperativeNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-手术记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-手术记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrOperativeNote> initData(List<StrOperativeNoteVO> list) throws Exception{
+        List<StrOperativeNote> tList=Lists.newArrayList();
+        for (StrOperativeNoteVO s:list) {
+            StrOperativeNote t=new StrOperativeNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getOperationDate())){
+                t.setOperationDate(DateUtil.parseDateTime(s.getOperationDate()));//手术日期
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            if(StringUtil.isNotEmpty(s.getStartTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getStartTime()));//开始时间
+            }
+            if(StringUtil.isNotEmpty(s.getEndTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getEndTime()));//结束时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.OPERATIVE_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrOperativeNote> list){
+        List<StrOperativeNote> addE = Lists.newLinkedList();
+        List<StrOperativeNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrOperativeNote strOperativeNote = this.getOne(new QueryWrapper<StrOperativeNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strOperativeNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strOperativeNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 225 - 0
src/main/java/com/diagbot/facade/str/BStrPeriodConclusionFacade.java

@@ -0,0 +1,225 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrPeriodConclusion;
+import com.diagbot.entity.StrPeriodConclusion;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrPeriodConclusionServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrPeriodConclusionVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrPeriodConclusionVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrPeriodConclusionFacade extends StrPeriodConclusionServiceImpl {
+
+    @Autowired
+    @Qualifier("strPeriodConclusionServiceImpl")
+    private StrPeriodConclusionServiceImpl strPeriodConclusionService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strPeriodConclusion");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrPeriodConclusion strPeriodConclusion=new StrPeriodConclusion();
+        strPeriodConclusion.setRecId(strContentVO.getRecId());
+        strPeriodConclusion.setBehospitalCode(strContentVO.getBehospitalCode());
+        strPeriodConclusion.setHospitalId(strContentVO.getHospitalId());
+        strPeriodConclusion.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strPeriodConclusion)) {
+            strPeriodConclusion.setGmtCreate(new Date());//记录创建时间
+            this.save(strPeriodConclusion);
+        } else {
+            strPeriodConclusion.setGmtModified(new Date());//记录修改时间
+            this.update(strPeriodConclusion, new QueryWrapper<StrPeriodConclusion>()
+                    .eq("rec_id", strPeriodConclusion.getRecId())
+                    .eq("hospital_id", strPeriodConclusion.getHospitalId())
+                    .eq("behospital_code", strPeriodConclusion.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrPeriodConclusion strPeriodConclusion=new StrPeriodConclusion();
+        try {
+            AStrPeriodConclusionVO strPeriodConclusionVO=(AStrPeriodConclusionVO) MapUtil.mapToObject(entityMap, AStrPeriodConclusionVO.class);
+            BeanUtils.copyProperties(strPeriodConclusionVO,strPeriodConclusion);
+            strPeriodConclusion.setHospitalId(hospitalId);//医院编码
+
+            strPeriodConclusion.setAuditDate(DateUtil.parseDateTime(strPeriodConclusionVO.getAuditDate()));//审核时间
+            strPeriodConclusion.setRecDate(DateUtil.parseDateTime(strPeriodConclusionVO.getRecDate()));//记录时间
+            strPeriodConclusion.setRecordDate(DateUtil.parseDateTime(strPeriodConclusionVO.getRecordDate()));//病历日期
+
+            strPeriodConclusion.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strPeriodConclusion)){
+                strPeriodConclusion.setGmtCreate(new Date());//记录创建时间
+                this.save(strPeriodConclusion);
+            }else{
+                strPeriodConclusion.setGmtModified(new Date());//记录修改时间
+                this.update(strPeriodConclusion,new QueryWrapper<StrPeriodConclusion>()
+                        .eq("rec_id", strPeriodConclusion.getRecId())
+                        .eq("hospital_id", strPeriodConclusion.getHospitalId())
+                        .eq("behospital_code", strPeriodConclusion.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("阶段小结",strPeriodConclusion.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrPeriodConclusion strPeriodConclusion){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrPeriodConclusion>()
+                .eq("rec_id", strPeriodConclusion.getRecId())
+                .eq("hospital_id", strPeriodConclusion.getHospitalId())
+                .eq("behospital_code", strPeriodConclusion.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:阶段小结-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrPeriodConclusionVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrPeriodConclusionVO strPeriodConclusionVO:list) {
+                    if("".equals(strPeriodConclusionVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strPeriodConclusionVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strPeriodConclusionVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrPeriodConclusion> strPeriodConclusionList= initData(list);
+                execute(strPeriodConclusionList);
+
+                if(logSwitch){
+                    strPeriodConclusionList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-阶段小结-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-阶段小结-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrPeriodConclusion> initData(List<StrPeriodConclusionVO> list) throws Exception{
+        List<StrPeriodConclusion> tList=Lists.newArrayList();
+        for (StrPeriodConclusionVO s:list) {
+            StrPeriodConclusion t=new StrPeriodConclusion();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.PERIOD_CONCLUSION.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrPeriodConclusion> list){
+        List<StrPeriodConclusion> addE = Lists.newLinkedList();
+        List<StrPeriodConclusion> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrPeriodConclusion strPeriodConclusion = this.getOne(new QueryWrapper<StrPeriodConclusion>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strPeriodConclusion != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strPeriodConclusionService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+}

+ 228 - 0
src/main/java/com/diagbot/facade/str/BStrPreoperativeDiscussionFacade.java

@@ -0,0 +1,228 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrPreoperativeDiscussion;
+import com.diagbot.entity.StrPreoperativeDiscussion;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrPreoperativeDiscussionServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrPreoperativeDiscussionVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrPreoperativeDiscussionVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrPreoperativeDiscussionFacade extends StrPreoperativeDiscussionServiceImpl {
+
+    @Autowired
+    @Qualifier("strPreoperativeDiscussionServiceImpl")
+    private StrPreoperativeDiscussionServiceImpl strPreoperativeDiscussionService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strPreoperativeDiscussion");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrPreoperativeDiscussion strPreoperativeDiscussion=new StrPreoperativeDiscussion();
+        strPreoperativeDiscussion.setRecId(strContentVO.getRecId());
+        strPreoperativeDiscussion.setBehospitalCode(strContentVO.getBehospitalCode());
+        strPreoperativeDiscussion.setHospitalId(strContentVO.getHospitalId());
+        strPreoperativeDiscussion.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strPreoperativeDiscussion)) {
+            strPreoperativeDiscussion.setGmtCreate(new Date());//记录创建时间
+            this.save(strPreoperativeDiscussion);
+        } else {
+            strPreoperativeDiscussion.setGmtModified(new Date());//记录修改时间
+            this.update(strPreoperativeDiscussion, new QueryWrapper<StrPreoperativeDiscussion>()
+                    .eq("rec_id", strPreoperativeDiscussion.getRecId())
+                    .eq("hospital_id", strPreoperativeDiscussion.getHospitalId())
+                    .eq("behospital_code", strPreoperativeDiscussion.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrPreoperativeDiscussion strPreoperativeDiscussion=new StrPreoperativeDiscussion();
+        try {
+            AStrPreoperativeDiscussionVO strPreoperativeDiscussionVO=(AStrPreoperativeDiscussionVO) MapUtil.mapToObject(entityMap, AStrPreoperativeDiscussionVO.class);
+            BeanUtils.copyProperties(strPreoperativeDiscussionVO,strPreoperativeDiscussion);
+            strPreoperativeDiscussion.setHospitalId(hospitalId);//医院编码
+
+            strPreoperativeDiscussion.setAuditDate(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getAuditDate()));//审核时间
+            strPreoperativeDiscussion.setRecDate(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getRecDate()));//记录时间
+            strPreoperativeDiscussion.setDiscussTime(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getDiscussTime()));//讨论时间
+            strPreoperativeDiscussion.setRecordDate(DateUtil.parseDateTime(strPreoperativeDiscussionVO.getRecordDate()));//病历日期
+
+            strPreoperativeDiscussion.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strPreoperativeDiscussion)){
+                strPreoperativeDiscussion.setGmtCreate(new Date());//记录创建时间
+                this.save(strPreoperativeDiscussion);
+            }else{
+                strPreoperativeDiscussion.setGmtModified(new Date());//记录修改时间
+                this.update(strPreoperativeDiscussion,new QueryWrapper<StrPreoperativeDiscussion>()
+                        .eq("rec_id", strPreoperativeDiscussion.getRecId())
+                        .eq("hospital_id", strPreoperativeDiscussion.getHospitalId())
+                        .eq("behospital_code", strPreoperativeDiscussion.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("术前讨论小结",strPreoperativeDiscussion.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrPreoperativeDiscussion strPreoperativeDiscussion){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrPreoperativeDiscussion>()
+                .eq("rec_id", strPreoperativeDiscussion.getRecId())
+                .eq("hospital_id", strPreoperativeDiscussion.getHospitalId())
+                .eq("behospital_code", strPreoperativeDiscussion.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:术前讨论小结-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrPreoperativeDiscussionVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrPreoperativeDiscussionVO strPreoperativeDiscussionVO:list) {
+                    if("".equals(strPreoperativeDiscussionVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strPreoperativeDiscussionVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strPreoperativeDiscussionVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrPreoperativeDiscussion> strPreoperativeDiscussionList= initData(list);
+                execute(strPreoperativeDiscussionList);
+
+                if(logSwitch){
+                    strPreoperativeDiscussionList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术前讨论小结-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-术前讨论小结-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrPreoperativeDiscussion> initData(List<StrPreoperativeDiscussionVO> list) throws Exception{
+        List<StrPreoperativeDiscussion> tList=Lists.newArrayList();
+        for (StrPreoperativeDiscussionVO s:list) {
+            StrPreoperativeDiscussion t=new StrPreoperativeDiscussion();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            if(StringUtil.isNotEmpty(s.getDiscussTime())){
+                t.setDiscussTime(DateUtil.parseDateTime(s.getDiscussTime()));//讨论时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.PREOPERATIVE_DISCUSSION.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrPreoperativeDiscussion> list){
+        List<StrPreoperativeDiscussion> addE = Lists.newLinkedList();
+        List<StrPreoperativeDiscussion> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrPreoperativeDiscussion strPreoperativeDiscussion = this.getOne(new QueryWrapper<StrPreoperativeDiscussion>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strPreoperativeDiscussion != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strPreoperativeDiscussionService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 232 - 0
src/main/java/com/diagbot/facade/str/BStrRescueNoteFacade.java

@@ -0,0 +1,232 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrRescueNote;
+import com.diagbot.entity.StrRescueNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrRescueNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrRescueNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrRescueNoteVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrRescueNoteFacade extends StrRescueNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strRescueNoteServiceImpl")
+    private StrRescueNoteServiceImpl strRescueNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strRescueNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrRescueNote strRescueNote=new StrRescueNote();
+        strRescueNote.setRecId(strContentVO.getRecId());
+        strRescueNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strRescueNote.setHospitalId(strContentVO.getHospitalId());
+        strRescueNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strRescueNote)) {
+            strRescueNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strRescueNote);
+        } else {
+            strRescueNote.setGmtModified(new Date());//记录修改时间
+            this.update(strRescueNote, new QueryWrapper<StrRescueNote>()
+                    .eq("rec_id", strRescueNote.getRecId())
+                    .eq("hospital_id", strRescueNote.getHospitalId())
+                    .eq("behospital_code", strRescueNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrRescueNote strRescueNote=new StrRescueNote();
+        try {
+            AStrRescueNoteVO strRescueNoteVO=(AStrRescueNoteVO) MapUtil.mapToObject(entityMap, AStrRescueNoteVO.class);
+            BeanUtils.copyProperties(strRescueNoteVO,strRescueNote);
+            strRescueNote.setHospitalId(hospitalId);//医院编码
+
+            strRescueNote.setAuditDate(DateUtil.parseDateTime(strRescueNoteVO.getAuditDate()));//审核时间
+            strRescueNote.setRecDate(DateUtil.parseDateTime(strRescueNoteVO.getRecDate()));//记录时间
+            strRescueNote.setStartTime(DateUtil.parseDateTime(strRescueNoteVO.getStartTime()));//开始时间
+            strRescueNote.setEndTime(DateUtil.parseDate(strRescueNoteVO.getEndTime()));//结束时间
+            strRescueNote.setRecordDate(DateUtil.parseDateTime(strRescueNoteVO.getRecordDate()));//病历日期
+
+            strRescueNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strRescueNote)){
+                strRescueNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strRescueNote);
+            }else{
+                strRescueNote.setGmtModified(new Date());//记录修改时间
+                this.update(strRescueNote,new QueryWrapper<StrRescueNote>()
+                        .eq("rec_id", strRescueNote.getRecId())
+                        .eq("hospital_id", strRescueNote.getHospitalId())
+                        .eq("behospital_code", strRescueNote.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("抢救记录", strRescueNote.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrRescueNote strRescueNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrRescueNote>()
+                .eq("rec_id", strRescueNote.getRecId())
+                .eq("hospital_id", strRescueNote.getHospitalId())
+                .eq("behospital_code", strRescueNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:抢救记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrRescueNoteVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrRescueNoteVO strRescueNoteVO:list) {
+                    if("".equals(strRescueNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strRescueNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strRescueNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrRescueNote> strRescueNoteList= initData(list);
+                execute(strRescueNoteList);
+
+                if(logSwitch){
+                    strRescueNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-抢救记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-抢救记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrRescueNote> initData(List<StrRescueNoteVO> list) throws Exception{
+        List<StrRescueNote> tList=Lists.newArrayList();
+        for (StrRescueNoteVO s:list) {
+            StrRescueNote t=new StrRescueNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            if(StringUtil.isNotEmpty(s.getStartTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getStartTime()));//开始时间
+            }
+            if(StringUtil.isNotEmpty(s.getEndTime())){
+                t.setEndTime(DateUtil.parseDateTime(s.getEndTime()));//结束时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.RESCUE_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrRescueNote> list){
+        List<StrRescueNote> addE = Lists.newLinkedList();
+        List<StrRescueNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrRescueNote strRescueNote = this.getOne(new QueryWrapper<StrRescueNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strRescueNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strRescueNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 199 - 0
src/main/java/com/diagbot/facade/str/BStrTalkInformFacade.java

@@ -0,0 +1,199 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrTalkInform;
+import com.diagbot.entity.StrTalkInform;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrTalkInformServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrTalkInformVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrTalkInformFacade extends StrTalkInformServiceImpl {
+    @Autowired
+    @Qualifier("strTalkInformServiceImpl")
+    private StrTalkInformServiceImpl strTalkInformService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strTalkInform");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrTalkInform strTalkInform=new StrTalkInform();
+        strTalkInform.setRecId(strContentVO.getRecId());
+        strTalkInform.setBehospitalCode(strContentVO.getBehospitalCode());
+        strTalkInform.setHospitalId(strContentVO.getHospitalId());
+        //strTalkInform.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strTalkInform)) {
+            strTalkInform.setGmtCreate(new Date());//记录创建时间
+            this.save(strTalkInform);
+        } else {
+            strTalkInform.setGmtModified(new Date());//记录修改时间
+            this.update(strTalkInform, new QueryWrapper<StrTalkInform>()
+                    .eq("rec_id", strTalkInform.getRecId())
+                    .eq("hospital_id", strTalkInform.getHospitalId())
+                    .eq("behospital_code", strTalkInform.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrTalkInform strTalkInform=new StrTalkInform();
+        try {
+            StrTalkInformVO strTalkInformVO=(StrTalkInformVO) MapUtil.mapToObject(entityMap, StrTalkInformVO.class);
+            BeanUtils.copyProperties(strTalkInformVO,strTalkInform);
+            strTalkInform.setHospitalId(hospitalId);//医院编码
+
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strTalkInform)){
+                strTalkInform.setGmtCreate(new Date());//记录创建时间
+                this.save(strTalkInform);
+            }else{
+                strTalkInform.setGmtModified(new Date());//记录修改时间
+                this.update(strTalkInform,new QueryWrapper<StrTalkInform>()
+                        .eq("rec_id", strTalkInform.getRecId())
+                        .eq("hospital_id", strTalkInform.getHospitalId())
+                        .eq("behospital_code", strTalkInform.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("病重通知单", strTalkInform.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrTalkInform strTalkInform){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrTalkInform>()
+                .eq("rec_id", strTalkInform.getRecId())
+                .eq("hospital_id", strTalkInform.getHospitalId())
+                .eq("behospital_code", strTalkInform.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:告知书记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrTalkInformVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrTalkInformVO strTalkInformVO:list) {
+                    if("".equals(strTalkInformVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strTalkInformVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strTalkInformVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrTalkInform> strTalkInformList= initData(list);
+                execute(strTalkInformList);
+
+                if(logSwitch){
+                    strTalkInformList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-告知书记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-告知书记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrTalkInform> initData(List<StrTalkInformVO> list) throws Exception{
+        List<StrTalkInform> tList= Lists.newArrayList();
+        for (StrTalkInformVO s:list) {
+            StrTalkInform t=new StrTalkInform();
+            BeanUtils.copyProperties(s,t);
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrTalkInform> list){
+        List<StrTalkInform> addE = Lists.newLinkedList();
+        List<StrTalkInform> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrTalkInform strTalkInform = this.getOne(new QueryWrapper<StrTalkInform>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strTalkInform != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strTalkInformService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 228 - 0
src/main/java/com/diagbot/facade/str/BStrTransferInNoteFacade.java

@@ -0,0 +1,228 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrTransferInNote;
+import com.diagbot.entity.StrTransferInNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrTransferInNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrTransferInNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrTransferInNoteVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrTransferInNoteFacade extends StrTransferInNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strTransferInNoteServiceImpl")
+    private StrTransferInNoteServiceImpl strTransferInNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strTransferInNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrTransferInNote strTransferInNote=new StrTransferInNote();
+        strTransferInNote.setRecId(strContentVO.getRecId());
+        strTransferInNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strTransferInNote.setHospitalId(strContentVO.getHospitalId());
+        strTransferInNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strTransferInNote)) {
+            strTransferInNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strTransferInNote);
+        } else {
+            strTransferInNote.setGmtModified(new Date());//记录修改时间
+            this.update(strTransferInNote, new QueryWrapper<StrTransferInNote>()
+                    .eq("rec_id", strTransferInNote.getRecId())
+                    .eq("hospital_id", strTransferInNote.getHospitalId())
+                    .eq("behospital_code", strTransferInNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrTransferInNote strTransferInNote=new StrTransferInNote();
+        try {
+            AStrTransferInNoteVO strTransferInNoteVO=(AStrTransferInNoteVO) MapUtil.mapToObject(entityMap, AStrTransferInNoteVO.class);
+            BeanUtils.copyProperties(strTransferInNoteVO,strTransferInNote);
+            strTransferInNote.setHospitalId(hospitalId);//医院编码
+            strTransferInNote.setTransferInDate(DateUtil.parseDateTime(strTransferInNoteVO.getTransferInDate()));
+            strTransferInNote.setAuditDate(DateUtil.parseDateTime(strTransferInNoteVO.getAuditDate()));//审核时间
+            strTransferInNote.setRecDate(DateUtil.parseDateTime(strTransferInNoteVO.getRecDate()));//记录时间
+            strTransferInNote.setRecordDate(DateUtil.parseDateTime(strTransferInNoteVO.getRecordDate()));//病历日期
+
+            strTransferInNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strTransferInNote)){
+                strTransferInNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strTransferInNote);
+            }else{
+                strTransferInNote.setGmtModified(new Date());//记录修改时间
+                this.update(strTransferInNote,new QueryWrapper<StrTransferInNote>()
+                        .eq("rec_id", strTransferInNote.getRecId())
+                        .eq("hospital_id", strTransferInNote.getHospitalId())
+                        .eq("behospital_code", strTransferInNote.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("转入记录",strTransferInNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrTransferInNote strTransferInNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrTransferInNote>()
+                .eq("rec_id", strTransferInNote.getRecId())
+                .eq("hospital_id", strTransferInNote.getHospitalId())
+                .eq("behospital_code", strTransferInNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:转入记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrTransferInNoteVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrTransferInNoteVO strTransferInNoteVO:list) {
+                    if("".equals(strTransferInNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strTransferInNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strTransferInNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrTransferInNote> strTransferInNoteList= initData(list);
+                execute(strTransferInNoteList);
+
+                if(logSwitch){
+                    strTransferInNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转入记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转入记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrTransferInNote> initData(List<StrTransferInNoteVO> list) throws Exception{
+        List<StrTransferInNote> tList=Lists.newArrayList();
+        for (StrTransferInNoteVO s:list) {
+            StrTransferInNote t=new StrTransferInNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getTransferInDate())){
+                t.setTransferInDate(DateUtil.parseDateTime(s.getTransferInDate()));//转入日期
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.TRANSFER_IN_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrTransferInNote> list){
+        List<StrTransferInNote> addE = Lists.newLinkedList();
+        List<StrTransferInNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrTransferInNote strTransferInNote = this.getOne(new QueryWrapper<StrTransferInNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strTransferInNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strTransferInNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+
+}

+ 225 - 0
src/main/java/com/diagbot/facade/str/BStrTransferOutNoteFacade.java

@@ -0,0 +1,225 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrTransferOutNote;
+import com.diagbot.entity.StrTransferOutNote;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrTransferOutNoteServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrTransferOutNoteVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrTransferOutNoteVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrTransferOutNoteFacade extends StrTransferOutNoteServiceImpl {
+
+    @Autowired
+    @Qualifier("strTransferOutNoteServiceImpl")
+    private StrTransferOutNoteServiceImpl strTransferOutNoteService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strTransferOutNote");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrTransferOutNote strTransferOutNote=new StrTransferOutNote();
+        strTransferOutNote.setRecId(strContentVO.getRecId());
+        strTransferOutNote.setBehospitalCode(strContentVO.getBehospitalCode());
+        strTransferOutNote.setHospitalId(strContentVO.getHospitalId());
+        strTransferOutNote.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strTransferOutNote)) {
+            strTransferOutNote.setGmtCreate(new Date());//记录创建时间
+            this.save(strTransferOutNote);
+        } else {
+            strTransferOutNote.setGmtModified(new Date());//记录修改时间
+            this.update(strTransferOutNote, new QueryWrapper<StrTransferOutNote>()
+                    .eq("rec_id", strTransferOutNote.getRecId())
+                    .eq("hospital_id", strTransferOutNote.getHospitalId())
+                    .eq("behospital_code", strTransferOutNote.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrTransferOutNote strTransferOutNote=new StrTransferOutNote();
+        try {
+            AStrTransferOutNoteVO strTransferOutNoteVO=(AStrTransferOutNoteVO) MapUtil.mapToObject(entityMap, AStrTransferOutNoteVO.class);
+            BeanUtils.copyProperties(strTransferOutNoteVO,strTransferOutNote);
+            strTransferOutNote.setHospitalId(hospitalId);//医院编码
+            strTransferOutNote.setTransferInDate(DateUtil.parseDateTime(strTransferOutNoteVO.getTransferInDate()));
+            strTransferOutNote.setAuditDate(DateUtil.parseDateTime(strTransferOutNoteVO.getAuditDate()));//审核时间
+            strTransferOutNote.setRecDate(DateUtil.parseDateTime(strTransferOutNoteVO.getRecDate()));//记录时间
+            strTransferOutNote.setRecordDate(DateUtil.parseDateTime(strTransferOutNoteVO.getRecordDate()));//病历日期
+
+            strTransferOutNote.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strTransferOutNote)){
+                strTransferOutNote.setGmtCreate(new Date());//记录创建时间
+                this.save(strTransferOutNote);
+            }else{
+                strTransferOutNote.setGmtModified(new Date());//记录修改时间
+                this.update(strTransferOutNote,new QueryWrapper<StrTransferOutNote>()
+                        .eq("rec_id", strTransferOutNote.getRecId())
+                        .eq("hospital_id", strTransferOutNote.getHospitalId())
+                        .eq("behospital_code", strTransferOutNote.getBehospitalCode()));
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("转出记录",strTransferOutNote.getRecId(), JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrTransferOutNote strTransferOutNote){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrTransferOutNote>()
+                .eq("rec_id", strTransferOutNote.getRecId())
+                .eq("hospital_id", strTransferOutNote.getHospitalId())
+                .eq("behospital_code", strTransferOutNote.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:转出记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrTransferOutNoteVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrTransferOutNoteVO strTransferOutNoteVO:list) {
+                    if("".equals(strTransferOutNoteVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strTransferOutNoteVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strTransferOutNoteVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrTransferOutNote> strTransferOutNoteList= initData(list);
+                execute(strTransferOutNoteList);
+                if(logSwitch){
+                    strTransferOutNoteList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转出记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-转出记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrTransferOutNote> initData(List<StrTransferOutNoteVO> list) throws Exception{
+        List<StrTransferOutNote> tList=Lists.newArrayList();
+        for (StrTransferOutNoteVO s:list) {
+            StrTransferOutNote t=new StrTransferOutNote();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getTransferInDate())){
+                t.setTransferInDate(DateUtil.parseDateTime(s.getTransferInDate()));//转入日期
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.TRANSFER_OUT_NOTE.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            //t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrTransferOutNote> list){
+        List<StrTransferOutNote> addE = Lists.newLinkedList();
+        List<StrTransferOutNote> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrTransferOutNote strTransferOutNote = this.getOne(new QueryWrapper<StrTransferOutNote>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strTransferOutNote != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strTransferOutNoteService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

+ 228 - 0
src/main/java/com/diagbot/facade/str/BStrWardRecordFacade.java

@@ -0,0 +1,228 @@
+package com.diagbot.facade.str;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ColumnZhAndChDTO;
+import com.diagbot.entity.StrWardRecord;
+import com.diagbot.entity.StrWardRecord;
+import com.diagbot.enums.CacheKeyEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.data.AMedAbnormalInfoFacade;
+import com.diagbot.facade.data.ColumnFacade;
+import com.diagbot.service.impl.StrWardRecordServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.data.AStrWardRecordVO;
+import com.diagbot.vo.str.StrContentVO;
+import com.diagbot.vo.str.StrWardRecordVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class BStrWardRecordFacade extends StrWardRecordServiceImpl {
+
+    @Autowired
+    @Qualifier("strWardRecordServiceImpl")
+    private StrWardRecordServiceImpl strWardRecordService;
+    @Autowired
+    private ColumnFacade columnFacade;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Value("${log_switch.enable}")
+    private boolean logSwitch;
+
+    public void getColumnZhAndCh(){
+        List<ColumnZhAndChDTO> list=this.baseMapper.getColumnZhAndCh();
+        list.forEach(s->{
+            s.setEn(NamingStrategy.underlineToCamel(s.getEn()));
+        });
+
+        Map<String, String> columnMap= EntityUtil.makeMapWithKeyValue(list,"ch","en");
+        Boolean flag=columnFacade.createColumn(columnMap,"strWardRecord");
+
+        //Map<String, String> map=columnFacade.getColumn("strConsultationNote");
+        if(!flag){
+            return;
+        }
+    }
+
+    /**
+     * @Description:不解析时入库
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(StrContentVO strContentVO){
+        StrWardRecord strWardRecord=new StrWardRecord();
+        strWardRecord.setRecId(strContentVO.getRecId());
+        strWardRecord.setBehospitalCode(strContentVO.getBehospitalCode());
+        strWardRecord.setHospitalId(strContentVO.getHospitalId());
+        strWardRecord.setWholeData(strContentVO.getWholeData());
+        //判断数据库中是否存在,不存在insert
+        if (isExist(strWardRecord)) {
+            strWardRecord.setGmtCreate(new Date());//记录创建时间
+            this.save(strWardRecord);
+        } else {
+            strWardRecord.setGmtModified(new Date());//记录修改时间
+            this.update(strWardRecord, new QueryWrapper<StrWardRecord>()
+                    .eq("rec_id", strWardRecord.getRecId())
+                    .eq("hospital_id", strWardRecord.getHospitalId())
+                    .eq("behospital_code", strWardRecord.getBehospitalCode()));
+        }
+    }
+
+    /**
+     * @Description:解析后存储数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
+        StrWardRecord strWardRecord=new StrWardRecord();
+        try {
+            AStrWardRecordVO strWardRecordVO=(AStrWardRecordVO) MapUtil.mapToObject(entityMap, AStrWardRecordVO.class);
+            BeanUtils.copyProperties(strWardRecordVO,strWardRecord);
+            strWardRecord.setHospitalId(hospitalId);//医院编码
+
+            strWardRecord.setAuditDate(DateUtil.parseDateTime(strWardRecordVO.getAuditDate()));//审核时间
+            strWardRecord.setRecDate(DateUtil.parseDateTime(strWardRecordVO.getRecDate()));//记录时间
+            strWardRecord.setWardDate(DateUtil.parseDateTime(strWardRecordVO.getWardDate()));//查房日期
+            strWardRecord.setRecordDate(DateUtil.parseDateTime(strWardRecordVO.getRecordDate()));//病历日期
+
+            strWardRecord.setWholeData(columnMap);
+            //判断数据库中是否存在,不存在insert
+            if(isExist(strWardRecord)){
+                strWardRecord.setGmtCreate(new Date());//记录创建时间
+                this.save(strWardRecord);
+            }else{
+                strWardRecord.setGmtModified(new Date());//记录修改时间
+                this.update(strWardRecord,new QueryWrapper<StrWardRecord>()
+                        .eq("rec_id", strWardRecord.getRecId())
+                        .eq("hospital_id", strWardRecord.getHospitalId())
+                        .eq("behospital_code", strWardRecord.getBehospitalCode()));
+            }
+
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("查房记录", strWardRecord.getRecId(),JSON.toJSONString(entityMap),"",e.getMessage());
+        }
+
+    }
+
+    public Boolean isExist(StrWardRecord strWardRecord){
+        Boolean flag=true;
+        int count = this.baseMapper.selectCount(new QueryWrapper<StrWardRecord>()
+                .eq("rec_id", strWardRecord.getRecId())
+                .eq("hospital_id", strWardRecord.getHospitalId())
+                .eq("behospital_code", strWardRecord.getBehospitalCode()));
+        if(count>0){
+            flag=false;
+        }
+        return flag;
+    }
+
+    /**
+     * @Description:查房记录-结构化-独立入口
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO execDealData(List<StrWardRecordVO> list){
+        try{
+            if(list!=null && list.size()>0){
+                //循环验证数据有效性
+                for (StrWardRecordVO strWardRecordVO:list) {
+                    if("".equals(strWardRecordVO.getRecId())) {
+                        return RespDTO.onError("请输入记录编号!");
+                    }else if(strWardRecordVO.getHospitalId()==null){
+                        return RespDTO.onError("请输入医院编码!");
+                    }else if("".equals(strWardRecordVO.getBehospitalCode())){
+                        return RespDTO.onError("请输入病人住院编码!");
+                    }
+                }
+                //初始、格式化数据
+                List<StrWardRecord> strWardRecordList= initData(list);
+                execute(strWardRecordList);
+
+                if(logSwitch){
+                    strWardRecordList.forEach(s->{
+                        aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-查房记录-正常", s.getRecId(), JSON.toJSONString(s), "", "");
+                    });
+                }
+                return RespDTO.onSuc("操作正常!");
+            }else{
+                return RespDTO.onError("未接收到数据!");
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            if(list!=null && list.size()>0) {
+                list.forEach(s->{
+                    aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-查房记录-异常", s.getRecId(), JSON.toJSONString(list), "", e.getMessage());
+                });
+            }
+            return RespDTO.onError("数据处理异常,详情查看日志表");
+        }
+    }
+
+    private List<StrWardRecord> initData(List<StrWardRecordVO> list) throws Exception{
+        List<StrWardRecord> tList=Lists.newArrayList();
+        for (StrWardRecordVO s:list) {
+            StrWardRecord t=new StrWardRecord();
+            BeanUtils.copyProperties(s,t);
+            if(StringUtil.isNotEmpty(s.getRecordDate())){
+                t.setRecordDate(DateUtil.parseDateTime(s.getRecordDate()));//病历日期
+            }
+            if(StringUtil.isNotEmpty(s.getRecDate())){
+                t.setRecDate(DateUtil.parseDateTime(s.getRecDate()));//记录时间
+            }
+            if(StringUtil.isNotEmpty(s.getWardDate())){
+                t.setWardDate(DateUtil.parseDateTime(s.getWardDate()));//查房日期
+            }
+            if(StringUtil.isNotEmpty(s.getAuditDate())){
+                t.setAuditDate(DateUtil.parseDateTime(s.getAuditDate()));//审核时间
+            }
+            Map<String, String> columnMap=columnFacade.getColumn(CacheKeyEnum.WARD_RECORD.getName());
+            Map<String, Object> entityMap=MapUtil.objectToMap(s);
+            Map<String, Object> wholeMap=MapUtil.objcetKeyConvert(columnMap,entityMap);
+            t.setWholeData(JSON.toJSONString(wholeMap));
+            tList.add(t);
+        }
+        return tList;
+    }
+
+    public void execute(List<StrWardRecord> list){
+        List<StrWardRecord> addE = Lists.newLinkedList();
+        List<StrWardRecord> updateE = Lists.newLinkedList();
+        if (list != null && list.size() > 0) {
+            list.stream().forEach(s -> {
+                StrWardRecord strWardRecord = this.getOne(new QueryWrapper<StrWardRecord>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()), false);
+                if (strWardRecord != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            strWardRecordService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            this.baseMapper.updateBatchByKey(updateE);
+        }
+    }
+}

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

@@ -147,6 +147,56 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+    /**
+     * 病历质控报表--扣分项
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualityCase(CaseScoreVO caseScoreVO);
+
+    /**
+     * 病历质控报表-扣分
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualitySorce(CaseScoreVO caseScoreVO);
+
+    /**
+     * 病历质控报表-扣分数据
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<CaseScoreDTO> getQualityCaseSorce(CaseScoreVO caseScoreVO);
+
+    /**
+     * 病历质控报表科室-扣分数据
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<CaseScoreDTO> getQualityCaseSorceByDept(CaseScoreVO caseScoreVO);
+
+
+    /**
+     * 病历质控报表
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO);
+
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDTO> getQualityControlExport(BehospitalPageVO behospitalPageVO);
+
+
     /**
      * 各科室缺陷占比(主任医生)
      *
@@ -400,6 +450,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<UnModifyMRDetailDTO> unModifyMRSByDept(FilterUnModifyMRVO filterUnModifyMRVO);
 
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDeptDTO> qualityControlByDept(BehospitalPageVO behospitalPageVO);
+
+
 
     /**
      * 病历稽查表

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

@@ -33,4 +33,6 @@ public interface MedLisInfoMapper extends BaseMapper<MedLisInfo> {
     List<String> getInfo(@Param("hospitalId") Long hospitalId, @Param("behospitalCode") String behospitalCode);
 
     IPage<ExamineSonInfoDTO> getExamineSonInfo(@Param("examineSonInfoVO") ExamineSonInfoVO examineSonInfoVO, @Param("infos") Set<String> infos);
+
+    void updateBatchByKey(List<MedLisInfo> list);
 }

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

@@ -2,12 +2,9 @@ package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.CheckInfoDTO;
-import com.diagbot.dto.DoctorAdviceDTO;
-import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.entity.MedPacsInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.CheckInfoVO;
-import com.diagbot.vo.DoctorAdviceVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -31,4 +28,5 @@ public interface MedPacsInfoMapper extends BaseMapper<MedPacsInfo> {
 
     List<String> getInfo(@Param("hospitalId") Long hospitalId, @Param("behospitalCode") String behospitalCode);
 
+    void updateBatchByKey(List<MedPacsInfo> list);
 }

+ 1 - 1
src/main/java/com/diagbot/mapper/QcresultInfoMapper.java

@@ -150,7 +150,7 @@ public interface QcresultInfoMapper extends BaseMapper<QcresultInfo> {
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptEntryNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
+    public IPage<EntryNumGroupDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
     /**
      * 条目缺陷占比基础数据(内页)
      *

+ 3 - 2
src/main/java/com/diagbot/mapper/SysMenuMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.entity.wrapper.SysMenuWrapper;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -21,7 +22,7 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
      * @Author: ztg
      * @Date: 2018/9/14 13:57
      */
-    public List<SysMenuWrapper> getByRole(Long userId);
+    public List<SysMenuWrapper> getByRole(Long userId, Set<String> roleSet);
 
 
     /**
@@ -31,5 +32,5 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
      */
     public List<SysMenuWrapper> getSubMenuById(Long id);
 
-    public List<SysUserPermissionDTO> getByRolePermission(Long userId);
+    public List<SysUserPermissionDTO> getByRolePermission(Long userId,Set<String> roleSet);
 }

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

@@ -90,6 +90,14 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<NumDTO> leaveHosCountByDept(FilterVO filterVO);
 
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDeptDTO> qualityControlByDept(BehospitalPageVO behospitalPageVO);
+
     /**
      * 入院总人数统计-科室-首页
      *
@@ -147,6 +155,59 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+
+
+    /**
+     * 病历质控报表-扣分项
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualityCase(CaseScoreVO caseScoreVO);
+
+    /**
+     * 病历质控报表-扣分
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualitySorce(CaseScoreVO caseScoreVO);
+
+    /**
+     * 病历质控报表
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<CaseScoreDTO> getQualityCaseSorce(CaseScoreVO caseScoreVO);
+
+    /**
+     * 病历质控报表-科室
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    public List<CaseScoreDTO> getQualityCaseSorceByDept(CaseScoreVO caseScoreVO);
+
+
+
+
+    /**
+     * 病历质控报表
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO);
+
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public IPage<QualityControlDTO> getQualityControlExport(BehospitalPageVO behospitalPageVO);
+
     /**
      * 各科室缺陷占比(主任医生)
      *
@@ -392,6 +453,12 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     IPage<MedicalCheckDTO>  getMedicalCheck(FilterMedicalCheckVO filterVO,@Param("casesEntryIds")List<Long> casesEntryIds);
 
+    /**
+     * 病历稽查表
+     * @return
+     */
+    IPage<MedicalCheckDTO>  getMedicalChecks(FilterMedicalCheckVO filterVO,@Param("casesEntryIds")List<Long> casesEntryIds);
+
     /**
      * 病历稽查表导出
      * @return

+ 1 - 1
src/main/java/com/diagbot/service/QcresultInfoService.java

@@ -148,7 +148,7 @@ public interface QcresultInfoService extends IService<QcresultInfo> {
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptEntryNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
+    public IPage<EntryNumGroupDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
 
     /**
      * 条目缺陷占比(内页)

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.entity.wrapper.SysMenuWrapper;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -22,7 +23,7 @@ public interface SysMenuService extends IService<SysMenu> {
      * @Author: ztg
      * @Date: 2018/9/17 15:43
      */
-    public List<SysMenuWrapper> getByRole(Long userId);
+    public List<SysMenuWrapper> getByRole(Long userId,Set<String> roleSet);
 
 
     /**
@@ -32,5 +33,5 @@ public interface SysMenuService extends IService<SysMenu> {
      */
     public List<SysMenuWrapper> getSubMenuById(Long id);
 
-    public List<SysUserPermissionDTO> getByRolePermission(Long userId);
+    public List<SysUserPermissionDTO> getByRolePermission(Long userId, Set<String> roleSet);
 }

+ 179 - 0
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -213,6 +213,72 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.homePageLevelStatistics(filterOrderVO);
     }
 
+    /**
+     * 病历质控报表-扣分项
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    @Override
+    public List<QualityControlDTO> getQualityCase(CaseScoreVO caseScoreVO) {
+        return baseMapper.getQualityCase(caseScoreVO);
+    }
+
+    /**
+     * 病历质控报表-扣分
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    @Override
+    public List<QualityControlDTO> getQualitySorce(CaseScoreVO caseScoreVO) {
+        return baseMapper.getQualitySorce(caseScoreVO);
+    }
+    /**
+     * 病历质控报表-扣分数据
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    @Override
+    public List<CaseScoreDTO> getQualityCaseSorce(CaseScoreVO caseScoreVO) {
+        return baseMapper.getQualityCaseSorce(caseScoreVO);
+    }
+
+    /**
+     * 病历质控报表科室-扣分数据
+     *
+     * @param caseScoreVO
+     * @return
+     */
+    @Override
+    public List<CaseScoreDTO> getQualityCaseSorceByDept(CaseScoreVO caseScoreVO) {
+        return baseMapper.getQualityCaseSorceByDept(caseScoreVO);
+    }
+
+    /**
+     * 病历质控报表
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    @Override
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getQualityControl(behospitalPageVO);
+    }
+
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    @Override
+    public IPage<QualityControlDTO> getQualityControlExport(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getQualityControlExport(behospitalPageVO);
+    }
+
+
     /**
      * 各科室缺陷占比(主任医生)
      *
@@ -540,6 +606,18 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.unModifyMRSByDept(filterUnModifyMRVO);
     }
 
+    /**
+     * 病历质控报表-科室
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    @Override
+    public IPage<QualityControlDeptDTO> qualityControlByDept(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.qualityControlByDept(behospitalPageVO);
+    }
+
+
     /**
      * 病历稽查表
      *
@@ -548,6 +626,107 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
      */
     @Override
     public IPage<MedicalCheckDTO> getMedicalCheck(@Param("filterVO") FilterMedicalCheckVO filterVO, @Param("casesEntryIds") List<Long> casesEntryIds) {
+        IPage<MedicalCheckDTO> medicalCheck = baseMapper.getMedicalCheck(filterVO);
+        List<MedicalCheckIdNameDTO> medicalEntryIds = baseMapper.getMedicalEntryIds(casesEntryIds);
+
+        List<MedicalCheckDTO> records = medicalCheck.getRecords();
+        for (MedicalCheckDTO record : records) {
+            for (MedicalCheckIdNameDTO medicalEntryId : medicalEntryIds) {
+                if ("2170".equals(medicalEntryId.getId())) {
+                    record.setEntry_2170_id(medicalEntryId.getId());
+                    record.setEntry_2170_name(medicalEntryId.getName());
+                }
+                if ("2217".equals(medicalEntryId.getId())) {
+                    record.setEntry_2217_id(medicalEntryId.getId());
+                    record.setEntry_2217_name(medicalEntryId.getName());
+                }
+                if ("2218".equals(medicalEntryId.getId())) {
+                    record.setEntry_2218_id(medicalEntryId.getId());
+                    record.setEntry_2218_name(medicalEntryId.getName());
+                }
+                if ("2220".equals(medicalEntryId.getId())) {
+                    record.setEntry_2220_id(medicalEntryId.getId());
+                    record.setEntry_2220_name(medicalEntryId.getName());
+                }
+                if ("2229".equals(medicalEntryId.getId())) {
+                    record.setEntry_2229_id(medicalEntryId.getId());
+                    record.setEntry_2229_name(medicalEntryId.getName());
+                }
+                if ("2287".equals(medicalEntryId.getId())) {
+                    record.setEntry_2287_id(medicalEntryId.getId());
+                    record.setEntry_2287_name(medicalEntryId.getName());
+                }
+                if ("2486".equals(medicalEntryId.getId())) {
+                    record.setEntry_2486_id(medicalEntryId.getId());
+                    record.setEntry_2486_name(medicalEntryId.getName());
+                }
+                if ("2495".equals(medicalEntryId.getId())) {
+                    record.setEntry_2495_id(medicalEntryId.getId());
+                    record.setEntry_2495_name(medicalEntryId.getName());
+                }
+                if ("2654".equals(medicalEntryId.getId())) {
+                    record.setEntry_2654_id(medicalEntryId.getId());
+                    record.setEntry_2654_name(medicalEntryId.getName());
+                }
+                if ("2655".equals(medicalEntryId.getId())) {
+                    record.setEntry_2655_id(medicalEntryId.getId());
+                    record.setEntry_2655_name(medicalEntryId.getName());
+                }
+                if ("2657".equals(medicalEntryId.getId())) {
+                    record.setEntry_2657_id(medicalEntryId.getId());
+                    record.setEntry_2657_name(medicalEntryId.getName());
+                }
+                if ("2658".equals(medicalEntryId.getId())) {
+                    record.setEntry_2658_id(medicalEntryId.getId());
+                    record.setEntry_2658_name(medicalEntryId.getName());
+                }
+                if ("2686".equals(medicalEntryId.getId())) {
+                    record.setEntry_2686_id(medicalEntryId.getId());
+                    record.setEntry_2686_name(medicalEntryId.getName());
+                }
+                if ("2852".equals(medicalEntryId.getId())) {
+                    record.setEntry_2852_id(medicalEntryId.getId());
+                    record.setEntry_2852_name(medicalEntryId.getName());
+                }
+                if ("2900".equals(medicalEntryId.getId())) {
+                    record.setEntry_2900_id(medicalEntryId.getId());
+                    record.setEntry_2900_name(medicalEntryId.getName());
+                }
+                if ("2930".equals(medicalEntryId.getId())) {
+                    record.setEntry_2930_id(medicalEntryId.getId());
+                    record.setEntry_2930_name(medicalEntryId.getName());
+                }
+                if ("3010".equals(medicalEntryId.getId())) {
+                    record.setEntry_3010_id(medicalEntryId.getId());
+                    record.setEntry_3010_name(medicalEntryId.getName());
+                }
+                if ("3025".equals(medicalEntryId.getId())) {
+                    record.setEntry_3025_id(medicalEntryId.getId());
+                    record.setEntry_3025_name(medicalEntryId.getName());
+                }
+                if ("3062".equals(medicalEntryId.getId())) {
+                    record.setEntry_3062_id(medicalEntryId.getId());
+                    record.setEntry_3062_name(medicalEntryId.getName());
+                }
+                if ("3063".equals(medicalEntryId.getId())) {
+                    record.setEntry_3063_id(medicalEntryId.getId());
+                    record.setEntry_3063_name(medicalEntryId.getName());
+                }
+            }
+        }
+
+        return medicalCheck;
+
+    }
+
+    /**
+     * 病历稽查表-科室
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public IPage<MedicalCheckDTO> getMedicalChecks(@Param("filterVO") FilterMedicalCheckVO filterVO, @Param("casesEntryIds") List<Long> casesEntryIds) {
         IPage<MedicalCheckDTO> medicalCheck = baseMapper.getMedicalCheckByDept(filterVO);
         List<MedicalCheckIdNameDTO> medicalEntryIds = baseMapper.getMedicalEntryIds(casesEntryIds);
 

+ 0 - 6
src/main/java/com/diagbot/service/impl/MedLisInfoServiceImpl.java

@@ -1,23 +1,17 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.dto.CheckInfoDTO;
-import com.diagbot.dto.DoctorAdviceDTO;
 import com.diagbot.dto.ExamineInfoDTO;
 import com.diagbot.dto.ExamineSonInfoDTO;
 import com.diagbot.entity.MedLisInfo;
 import com.diagbot.mapper.MedLisInfoMapper;
 import com.diagbot.service.MedLisInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.diagbot.vo.CheckInfoVO;
-import com.diagbot.vo.DoctorAdviceVO;
 import com.diagbot.vo.ExamineInfoVO;
 import com.diagbot.vo.ExamineSonInfoVO;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**

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

@@ -10,7 +10,6 @@ import com.diagbot.vo.CheckInfoVO;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
-import javax.validation.constraints.NotBlank;
 import java.util.*;
 
 /**

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

@@ -198,7 +198,7 @@ public class QcresultInfoServiceImpl extends ServiceImpl<QcresultInfoMapper, Qcr
      * @return
      */
     @Override
-    public IPage<DeptEntryNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO) {
+    public IPage<EntryNumGroupDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO) {
         return baseMapper.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
     }
 

+ 5 - 4
src/main/java/com/diagbot/service/impl/SysMenuServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -28,8 +29,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
      * @return 菜单信息
      */
     @Override
-    public List<SysMenuWrapper> getByRole(Long userId) {
-        return baseMapper.getByRole(userId);
+    public List<SysMenuWrapper> getByRole(Long userId, Set<String> roleSet) {
+        return baseMapper.getByRole(userId,roleSet);
     }
 
 
@@ -45,7 +46,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     }
 
     @Override
-    public List<SysUserPermissionDTO> getByRolePermission(Long userId){
-        return baseMapper.getByRolePermission(userId);
+    public List<SysUserPermissionDTO> getByRolePermission(Long userId,Set<String> roleSet){
+        return baseMapper.getByRolePermission(userId,roleSet);
     }
 }

+ 0 - 0
src/main/java/com/diagbot/util/ColumnCacheUtil.java


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio