Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/dev/prec20200224_v2.0.0' into dev/prec20200224_v2.0.0

wangfeng 5 anni fa
parent
commit
b33e7b2991
71 ha cambiato i file con 2916 aggiunte e 308 eliminazioni
  1. 80 0
      docs/029.20200109模板新需求/init.sql
  2. 92 0
      docs/029.20200109模板新需求/技术服务部脚本标准模板.sql
  3. 3 0
      docs/030.预问诊交互方式改成QA/init_prec.sql
  4. 9 0
      icss-service/src/main/java/com/diagbot/client/TranServiceClient.java
  5. 12 0
      icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  6. 64 0
      icss-service/src/main/java/com/diagbot/dto/TemplateFolderDTO.java
  7. 1 0
      icss-service/src/main/java/com/diagbot/dto/TemplateInfoDTO.java
  8. 34 0
      icss-service/src/main/java/com/diagbot/dto/TemplateInfoNormDTO.java
  9. 1 0
      icss-service/src/main/java/com/diagbot/dto/TemplateInfoPageDTO.java
  10. 19 0
      icss-service/src/main/java/com/diagbot/dto/TemplateNormsDTO.java
  11. 79 0
      icss-service/src/main/java/com/diagbot/entity/FolderMapping.java
  12. 89 0
      icss-service/src/main/java/com/diagbot/entity/TemplateFolder.java
  13. 12 142
      icss-service/src/main/java/com/diagbot/entity/TemplateInfo.java
  14. 147 0
      icss-service/src/main/java/com/diagbot/entity/TemplateQuote.java
  15. 30 0
      icss-service/src/main/java/com/diagbot/facade/AdminCheckFacade.java
  16. 13 0
      icss-service/src/main/java/com/diagbot/facade/FolderMappingFacade.java
  17. 9 19
      icss-service/src/main/java/com/diagbot/facade/TemplateAdminFacade.java
  18. 230 0
      icss-service/src/main/java/com/diagbot/facade/TemplateFolderAdminFacade.java
  19. 130 0
      icss-service/src/main/java/com/diagbot/facade/TemplateFolderFacade.java
  20. 105 11
      icss-service/src/main/java/com/diagbot/facade/TemplateInfoFacade.java
  21. 343 0
      icss-service/src/main/java/com/diagbot/facade/TemplateNormFacade.java
  22. 79 0
      icss-service/src/main/java/com/diagbot/facade/TemplateQuoteFacade.java
  23. 17 0
      icss-service/src/main/java/com/diagbot/mapper/FolderMappingMapper.java
  24. 16 0
      icss-service/src/main/java/com/diagbot/mapper/TemplateFolderMapper.java
  25. 6 0
      icss-service/src/main/java/com/diagbot/mapper/TemplateInfoMapper.java
  26. 16 0
      icss-service/src/main/java/com/diagbot/mapper/TemplateQuoteMapper.java
  27. 16 0
      icss-service/src/main/java/com/diagbot/service/FolderMappingService.java
  28. 16 0
      icss-service/src/main/java/com/diagbot/service/TemplateFolderService.java
  29. 6 2
      icss-service/src/main/java/com/diagbot/service/TemplateInfoService.java
  30. 16 0
      icss-service/src/main/java/com/diagbot/service/TemplateQuoteService.java
  31. 24 0
      icss-service/src/main/java/com/diagbot/service/impl/FolderMappingServiceImpl.java
  32. 24 0
      icss-service/src/main/java/com/diagbot/service/impl/TemplateFolderServiceImpl.java
  33. 11 0
      icss-service/src/main/java/com/diagbot/service/impl/TemplateInfoServiceImpl.java
  34. 20 0
      icss-service/src/main/java/com/diagbot/service/impl/TemplateQuoteServiceImpl.java
  35. 29 0
      icss-service/src/main/java/com/diagbot/vo/TemplateFolderDelVO.java
  36. 32 0
      icss-service/src/main/java/com/diagbot/vo/TemplateFolderListVO.java
  37. 24 0
      icss-service/src/main/java/com/diagbot/vo/TemplateFolderSortObjVO.java
  38. 63 0
      icss-service/src/main/java/com/diagbot/vo/TemplateFolderSortVO.java
  39. 58 0
      icss-service/src/main/java/com/diagbot/vo/TemplateFolderVO.java
  40. 34 0
      icss-service/src/main/java/com/diagbot/vo/TemplateInfoPersonVO.java
  41. 3 0
      icss-service/src/main/java/com/diagbot/vo/TemplateInfoRevampVO.java
  42. 21 20
      icss-service/src/main/java/com/diagbot/vo/TemplateInfosVO.java
  43. 42 0
      icss-service/src/main/java/com/diagbot/vo/TemplateNormUpVO.java
  44. 16 0
      icss-service/src/main/java/com/diagbot/vo/TemplateNormsFindVO.java
  45. 24 0
      icss-service/src/main/java/com/diagbot/vo/TemplateNormsIdsVO.java
  46. 18 0
      icss-service/src/main/java/com/diagbot/vo/TemplateNormsParamVO.java
  47. 39 0
      icss-service/src/main/java/com/diagbot/vo/TemplateNormsVO.java
  48. 32 0
      icss-service/src/main/java/com/diagbot/vo/TemplateQuoteVO.java
  49. 48 0
      icss-service/src/main/java/com/diagbot/vo/TemplateSortVO.java
  50. 20 0
      icss-service/src/main/java/com/diagbot/web/FolderMappingController.java
  51. 84 0
      icss-service/src/main/java/com/diagbot/web/TemplateFolderAdminController.java
  52. 69 0
      icss-service/src/main/java/com/diagbot/web/TemplateFolderController.java
  53. 2 0
      icss-service/src/main/java/com/diagbot/web/TemplateInfoAdminController.java
  54. 43 4
      icss-service/src/main/java/com/diagbot/web/TemplateInfoController.java
  55. 103 0
      icss-service/src/main/java/com/diagbot/web/TemplateNormController.java
  56. 38 0
      icss-service/src/main/java/com/diagbot/web/TemplateQuoteController.java
  57. 26 0
      icss-service/src/main/resources/mapper/FolderMappingMapper.xml
  58. 29 0
      icss-service/src/main/resources/mapper/TemplateFolderMapper.xml
  59. 160 99
      icss-service/src/main/resources/mapper/TemplateInfoMapper.xml
  60. 18 0
      icss-service/src/main/resources/mapper/TemplateQuoteMapper.xml
  61. 1 1
      icss-service/src/test/java/com/diagbot/CodeGeneration.java
  62. 1 0
      prec-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  63. 5 0
      prec-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  64. 1 0
      prec-service/src/main/resources/mapper/QuestionInfoMapper.xml
  65. 1 0
      precman-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  66. 5 0
      precman-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  67. 1 0
      precman-service/src/main/java/com/diagbot/entity/wrapper/QuestionWrapper.java
  68. 1 0
      precman-service/src/main/resources/mapper/QuestionInfoMapper.xml
  69. 45 10
      tran-service/src/main/java/com/diagbot/facade/DoctorInfoFacade.java
  70. 3 0
      tran-service/src/main/java/com/diagbot/facade/SysSetFacade.java
  71. 8 0
      tran-service/src/main/java/com/diagbot/web/DoctorInfoController.java

+ 80 - 0
docs/029.20200109模板新需求/init.sql

@@ -0,0 +1,80 @@
+use `sys-icss`;
+
+ALTER TABLE `icss_template_info`
+ADD COLUMN `spell` varchar(100) DEFAULT NULL COMMENT '拼音' AFTER `name`;
+
+DROP TABLE IF EXISTS `icss_template_quote`;
+CREATE TABLE `icss_template_quote` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(3) DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `template_id` bigint(20) DEFAULT NULL COMMENT '模板id',
+  `doctor_id` bigint(20) DEFAULT NULL COMMENT '医生id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模板引用表';
+
+
+DROP TABLE IF EXISTS `icss_template_folder`;
+CREATE TABLE `icss_template_folder` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1)  NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20)  NOT NULL DEFAULT '' COMMENT '创建人姓名',
+  `modifier` varchar(20)  NOT NULL DEFAULT '' COMMENT '修改人姓名',
+  `name` varchar(300) NOT NULL DEFAULT '' COMMENT '名称',
+  `hospital_id` bigint(20) DEFAULT NULL COMMENT '医院id',
+  `doctor_id` bigint(20) DEFAULT NULL COMMENT '医生id',
+  `template_type` int(11) NOT NULL DEFAULT '1' COMMENT '模板类型(个人1,管理员2)',
+  `order_no` int(11) NOT NULL DEFAULT '1' COMMENT '排序号',
+  `remark` varchar(255)  NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8  COMMENT='模板文件夹表';
+
+
+DROP TABLE IF EXISTS `icss_folder_mapping`;
+CREATE TABLE `icss_folder_mapping` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1)  NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20)  NOT NULL DEFAULT '' COMMENT '创建人姓名',
+  `modifier` varchar(20)  NOT NULL DEFAULT '' COMMENT '修改人姓名',
+  `template_id` bigint(20) DEFAULT NULL COMMENT '模板id',
+  `folder_id` bigint(20) DEFAULT NULL COMMENT '文件夹id',
+  `order_no` int(11) NOT NULL DEFAULT '1' COMMENT '排序号',
+  `remark` varchar(255)  NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8  COMMENT='模板文件夹映射表';
+
+insert into `icss_template_folder`(`creator`,`modifier`,`name`,`hospital_id`,`doctor_id`,`template_type`,`order_no`) values (-7,-7,'未分类文件夹','-9','-7',2,99999);
+
+-- 更新icss_template_info的doctor_id
+update `sys-icss`.icss_template_info set doctor_id = CONCAT('-',doctor_id)
+where doctor_id in
+	(SELECT id FROM `sys-tran`.`tran_doctor_info` where hospital_code = 'LT');
+
+-- 更新icss_template_info的hospital_id
+update `sys-icss`.icss_template_info set hospital_id = CONCAT('-',hospital_id)
+where hospital_id in
+	(SELECT id FROM `sys-tran`.`tran_hospital_info` where code = 'LT');
+
+-- 更新icss_template_info的hospital_dept_id
+update `sys-icss`.icss_template_info set hospital_dept_id = CONCAT('-',hospital_dept_id)
+where hospital_dept_id in
+	(SELECT id FROM `sys-tran`.`tran_hospital_dept` where hospital_code = 'LT');
+
+-- 将标准模板放入“未分类文件夹”下
+insert into icss_folder_mapping(`template_id`,`creator`,`modifier`,`folder_id`)
+(SELECT id,doctor_id,doctor_id, (select id from icss_template_folder where name = '未分类文件夹') from icss_template_info where template_type = 2 and is_deleted = 'N');
+
+
+update `sys-tran`.`tran_doctor_info` set id=CONCAT('-',id)  where hospital_code = 'LT';
+update `sys-tran`.`tran_hospital_info` set id=CONCAT('-',id)  where code = 'LT';
+update `sys-tran`.`tran_hospital_dept` set id=CONCAT('-',id)  where hospital_code = 'LT';
+update `sys-tran`.`tran_patient_info` set id=CONCAT('-',id)  where hospital_code = 'LT';
+update `sys-tran`.`tran_sys_set` set id=-1  where `code` = 'template_admin';

File diff suppressed because it is too large
+ 92 - 0
docs/029.20200109模板新需求/技术服务部脚本标准模板.sql


+ 3 - 0
docs/030.预问诊交互方式改成QA/init_prec.sql

@@ -0,0 +1,3 @@
+use `sys-prec`;
+
+alter table `prec_question_info` add  column `exclusion_detail` varchar(100) DEFAULT '' COMMENT '互斥选项(如1,2|3,4(1,2互斥,3,4互斥))' AFTER `required`;

+ 9 - 0
icss-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -70,6 +70,15 @@ public interface TranServiceClient {
     @PostMapping("/doctorInfo/doctorInfoMapByIds")
     RespDTO<Map<Long, DoctorInfo>> doctorInfoMapByIds(@RequestBody List<Long> ids);
 
+    /**
+     * 根据id获取医生信息
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/doctorInfo/doctorInfoById")
+    RespDTO<DoctorInfoDTO> getDoctorInfoById(@RequestBody Long id);
+
     /**
      * 根据ids获取科室信息map
      *

+ 12 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -64,6 +64,18 @@ public class TranServiceHystrix implements TranServiceClient {
         return null;
     }
 
+    /**
+     * 根据id获取医生信息
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public RespDTO<DoctorInfoDTO> getDoctorInfoById(@RequestBody Long id) {
+        log.error("【hystrix】调用{}异常", "getDoctorInfoById");
+        return null;
+    }
+
     @Override
     public RespDTO<HospitalInfoDTO> getHospitalInfo(HospitalInfoVO hospitalInfoVO) {
         log.error("【hystrix】调用{}异常", "getHospitalInfo");

+ 64 - 0
icss-service/src/main/java/com/diagbot/dto/TemplateFolderDTO.java

@@ -0,0 +1,64 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.diagbot.entity.TemplateInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-13 11:08
+ */
+@Setter
+@Getter
+public class TemplateFolderDTO {
+
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 模板类型(个人1,管理员2)
+     */
+    private Integer templateType;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 文件夹下模板数量
+     */
+    private Integer templateInfoCount;
+
+    /**
+     * 模板
+     */
+    private List<TemplateInfoNormDTO> templateInfo;
+}

+ 1 - 0
icss-service/src/main/java/com/diagbot/dto/TemplateInfoDTO.java

@@ -18,6 +18,7 @@ public class TemplateInfoDTO {
 	 private Date  gmtCreate;//创建时间
 	 private String creator;//创建人id
 	 private String name;//模板名字
+	 private String spell;//模板拼音
 	 private Long doctorId;//医生id
 	 private Long hospitalId;//医院id
 	 private Long hospitalDeptId;//部门id

+ 34 - 0
icss-service/src/main/java/com/diagbot/dto/TemplateInfoNormDTO.java

@@ -0,0 +1,34 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-13 11:45
+ */
+@Setter
+@Getter
+public class TemplateInfoNormDTO {
+    private Long folderMappingId;
+    private Long folderId;
+    private Long orderNo;
+    private Long id;//模板id
+    private Date gmtCreate;//创建时间
+    private String creator;//创建人id
+    private String name;//模板名字
+    private String spell;//模板拼音
+    private Long doctorId;//医生id
+    private Long hospitalId;//医院id
+    private Long hospitalDeptId;//部门id
+    private String hospitalDeptName;//科室名
+    private Integer sex;//性别
+    private String type;//模板类型
+    private String  preview;//预览文字
+    private Integer templateType;
+    private String remark;//备注
+
+}

+ 1 - 0
icss-service/src/main/java/com/diagbot/dto/TemplateInfoPageDTO.java

@@ -18,6 +18,7 @@ public class TemplateInfoPageDTO {
 	 private Date  gmtCreate;//创建时间
 	 private String creator;//创建人id
 	 private String name;//模板名字
+	 private String spell;//模板拼音
 	 private Long doctorId;//医生id
 	 private Long hospitalId;//医院id
 	 private Long hospitalDeptId;//部门id

+ 19 - 0
icss-service/src/main/java/com/diagbot/dto/TemplateNormsDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.FolderMapping;
+import com.diagbot.entity.TemplateInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:54
+ */
+@Getter
+@Setter
+public class TemplateNormsDTO {
+    private List<TemplateFolderDTO> folderMapping;
+}

+ 79 - 0
icss-service/src/main/java/com/diagbot/entity/FolderMapping.java

@@ -0,0 +1,79 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 模板文件夹映射表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@TableName("icss_folder_mapping")
+@Getter
+@Setter
+public class FolderMapping implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人姓名
+     */
+    private String creator;
+
+    /**
+     * 修改人姓名
+     */
+    private String modifier;
+
+    /**
+     * 模板id
+     */
+    private Long templateId;
+
+    /**
+     * 文件夹id
+     */
+    private Long folderId;
+
+    /**
+     * 排序号
+     */
+    private Long orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 89 - 0
icss-service/src/main/java/com/diagbot/entity/TemplateFolder.java

@@ -0,0 +1,89 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 模板文件夹表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@TableName("icss_template_folder")
+@Getter
+@Setter
+public class TemplateFolder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人姓名
+     */
+    private String creator;
+
+    /**
+     * 修改人姓名
+     */
+    private String modifier;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 模板类型(个人1,管理员2)
+     */
+    private Integer templateType;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 12 - 142
icss-service/src/main/java/com/diagbot/entity/TemplateInfo.java

@@ -1,11 +1,13 @@
 package com.diagbot.entity;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -15,6 +17,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
  * @author wangfeng
  * @since 2018-11-19
  */
+@Getter
+@Setter
 @TableName("icss_template_info")
 public class TemplateInfo implements Serializable {
 
@@ -56,6 +60,11 @@ public class TemplateInfo implements Serializable {
      */
     private String name;
 
+    /**
+     * 拼音
+     */
+    private String spell;
+
     /**
      * 医生id
      */
@@ -98,143 +107,4 @@ public class TemplateInfo implements Serializable {
      * 备注
      */
     private String remark;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-    public Date getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-    public Long getDoctorId() {
-        return doctorId;
-    }
-
-    public void setDoctorId(Long doctorId) {
-        this.doctorId = doctorId;
-    }
-   
-    public Long getHospitalDeptId() {
-		return hospitalDeptId;
-	}
-
-	public void setHospitalDeptId(Long hospitalDeptId) {
-		this.hospitalDeptId = hospitalDeptId;
-	}
-
-	public Long getHospitalId() {
-        return hospitalId;
-    }
-
-    public void setHospitalId(Long hospitalId) {
-        this.hospitalId = hospitalId;
-    }
-    
-    public Integer getSex() {
-		return sex;
-	}
-
-	public void setSex(Integer sex) {
-		this.sex = sex;
-	}
-
-	public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-    public String getPreview() {
-        return preview;
-    }
-
-    public void setPreview(String preview) {
-        this.preview = preview;
-    }
-    public String getDataJson() {
-        return dataJson;
-    }
-
-    public void setDataJson(String dataJson) {
-        this.dataJson = dataJson;
-    }
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public Integer getTemplateType() {
-        return templateType;
-    }
-
-    public void setTemplateType(Integer templateType) {
-        this.templateType = templateType;
-    }
-
-    @Override
-    public String toString() {
-        return "TemplateInfo{" +
-        "id=" + id +
-        ", isDeleted=" + isDeleted +
-        ", gmtCreate=" + gmtCreate +
-        ", gmtModified=" + gmtModified +
-        ", creator=" + creator +
-        ", modifier=" + modifier +
-        ", name=" + name +
-        ", doctorId=" + doctorId +
-        ", hospitalDeptId=" + hospitalDeptId +
-        ", hospitalId=" + hospitalId +
-        ", sex" + sex +
-        ", type=" + type +
-        ", preview=" + preview +
-        ", dataJson=" + dataJson +
-        ", remark=" + remark +
-        "}";
-    }
 }

+ 147 - 0
icss-service/src/main/java/com/diagbot/entity/TemplateQuote.java

@@ -0,0 +1,147 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-01-09
+ */
+@TableName("icss_template_quote")
+public class TemplateQuote implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 模板id
+     */
+    private Long templateId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getTemplateId() {
+        return templateId;
+    }
+
+    public void setTemplateId(Long templateId) {
+        this.templateId = templateId;
+    }
+    public Long getDoctorId() {
+        return doctorId;
+    }
+
+    public void setDoctorId(Long doctorId) {
+        this.doctorId = doctorId;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "TemplateQuote{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", templateId=" + templateId +
+            ", doctorId=" + doctorId +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 30 - 0
icss-service/src/main/java/com/diagbot/facade/AdminCheckFacade.java

@@ -0,0 +1,30 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.HospitalCodeSetVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description: 医院管理员权限验证
+ * @author: gaodm
+ * @time: 2020/1/9 18:16
+ */
+@Component
+public class AdminCheckFacade {
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    /**
+     * @param hospitalCodeSetVO
+     * @return
+     */
+    public boolean getadminCheck(HospitalCodeSetVO hospitalCodeSetVO) {
+        hospitalCodeSetVO.setShowError(true);
+        RespDTO<Boolean> datas = tranServiceClient.getAdminCheckout(hospitalCodeSetVO);
+        RespDTOUtil.respNGDeal(datas, datas.msg);
+        return datas.data;
+    }
+}

+ 13 - 0
icss-service/src/main/java/com/diagbot/facade/FolderMappingFacade.java

@@ -0,0 +1,13 @@
+package com.diagbot.facade;
+import com.diagbot.service.impl.FolderMappingServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhoutg
+ * @Description: 模板文件夹映射
+ * @date 2018年11月16日 上午11:24:36
+ */
+@Component
+public class FolderMappingFacade extends FolderMappingServiceImpl {
+
+}

+ 9 - 19
icss-service/src/main/java/com/diagbot/facade/TemplateAdminFacade.java

@@ -42,11 +42,11 @@ import java.util.stream.Collectors;
  */
 @Component
 public class TemplateAdminFacade extends TemplateInfoServiceImpl {
-
-
     @Autowired
-    TranServiceClient tranServiceClient;
+    private TranServiceClient tranServiceClient;
 
+    @Autowired
+    private AdminCheckFacade adminCheckFacade;
     /**
      * @param templateInfoRevampVO
      * @return
@@ -56,7 +56,7 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
         hospitalCodeSetVO.setDoctorId(templateInfoRevampVO.getDoctorId());
         hospitalCodeSetVO.setHospitalId(templateInfoRevampVO.getHospitalId());
-        boolean res = getadminCheck(hospitalCodeSetVO);
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
         if (!res) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无修改权限");
         }
@@ -99,6 +99,7 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         templateInfo.setId(templateInfoRevampVO.getId());//模板id
         templateInfo.setName(templateInfoRevampVO.getModeName());//模板名称
         templateInfo.setGmtModified(DateUtil.now());//修改时间
+        templateInfo.setSpell(templateInfoRevampVO.getSpell().toUpperCase());//拼音
         res = updateById(templateInfo);
         if (!res) {
             throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
@@ -116,7 +117,7 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
         hospitalCodeSetVO.setDoctorId(templateInfosVO.getDoctorId());
         hospitalCodeSetVO.setHospitalId(templateInfosVO.getHospitalId());
-        boolean res = getadminCheck(hospitalCodeSetVO);
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
         if (!res) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无修改权限");
         }
@@ -149,6 +150,7 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         templateInfo.setName(templateInfosVO.getModeName());//模板名称
         templateInfo.setType(templateInfosVO.getModeType());//类型
         templateInfo.setTemplateType(TemplateTypeEnum.AdminTemplate.getKey());//模板类型
+        templateInfo.setSpell(templateInfosVO.getSpell().toUpperCase());//拼音
         res = save(templateInfo);
         if (!res) {
             throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
@@ -166,7 +168,7 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
         hospitalCodeSetVO.setDoctorId(templateAdminIdsVO.getDoctorId());
         hospitalCodeSetVO.setHospitalId(templateAdminIdsVO.getHospitalId());
-        boolean res = getadminCheck(hospitalCodeSetVO);
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
         if (!res) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无删除权限");
         }
@@ -204,7 +206,7 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
         hospitalCodeSetVO.setDoctorId(templateInfoPageVO.getDoctorId());
         hospitalCodeSetVO.setHospitalId(templateInfoPageVO.getHospitalId());
-        boolean res = getadminCheck(hospitalCodeSetVO);
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
         if (!res) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无权限");
         }
@@ -255,16 +257,4 @@ public class TemplateAdminFacade extends TemplateInfoServiceImpl {
         BeanUtil.copyProperties(datas, data);
         return data;
     }
-
-
-    /**
-     * @param hospitalCodeSetVO
-     * @return
-     */
-    public boolean getadminCheck(HospitalCodeSetVO hospitalCodeSetVO) {
-        hospitalCodeSetVO.setShowError(true);
-        RespDTO<Boolean> datas = tranServiceClient.getAdminCheckout(hospitalCodeSetVO);
-        RespDTOUtil.respNGDeal(datas, datas.msg);
-        return datas.data;
-    }
 }

+ 230 - 0
icss-service/src/main/java/com/diagbot/facade/TemplateFolderAdminFacade.java

@@ -0,0 +1,230 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.FolderMapping;
+import com.diagbot.entity.TemplateFolder;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TemplateTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.FolderMappingService;
+import com.diagbot.service.TemplateFolderService;
+import com.diagbot.service.impl.TemplateFolderServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.HospitalCodeSetVO;
+import com.diagbot.vo.TemplateFolderDelVO;
+import com.diagbot.vo.TemplateFolderListVO;
+import com.diagbot.vo.TemplateFolderSortVO;
+import com.diagbot.vo.TemplateFolderVO;
+import com.diagbot.vo.TemplateSortVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhoutg
+ * @Description: 病历模板文件夹管理员
+ * @date 2018年11月16日 上午11:24:36
+ */
+@Component
+public class TemplateFolderAdminFacade extends TemplateFolderServiceImpl {
+
+    @Autowired
+    AdminCheckFacade adminCheckFacade;
+    @Autowired
+    FolderMappingFacade folderMappingFacade;
+    @Autowired
+    @Qualifier("templateFolderServiceImpl")
+    TemplateFolderService templateFolderService;
+
+    @Autowired
+    @Qualifier("folderMappingServiceImpl")
+    FolderMappingService folderMappingService;
+
+    /**
+     * 文件夹新增或更新
+     *
+     * @param templateFolderVO
+     */
+    public void saveOrUpdate(TemplateFolderVO templateFolderVO) {
+        HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+        hospitalCodeSetVO.setDoctorId(templateFolderVO.getDoctorId());
+        hospitalCodeSetVO.setHospitalId(templateFolderVO.getHospitalId());
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无修改权限");
+        }
+        boolean add = true;
+        if (templateFolderVO.getId() != null) {
+            add = false;
+        }
+        int count = this.count(new QueryWrapper<TemplateFolder>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("name", templateFolderVO.getName())
+                .eq("hospital_id", templateFolderVO.getHospitalId())
+                .eq("template_type", TemplateTypeEnum.AdminTemplate.getKey())
+                // .eq("doctor_id", templateFolderVO.getDoctorId())
+                .ne(!add, "id", templateFolderVO.getId())
+        );
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该文件夹已存在");
+        }
+        TemplateFolder templateFolder = new TemplateFolder();
+        BeanUtil.copyProperties(templateFolderVO, templateFolder);
+        Date date = DateUtil.now();
+        if (add) {
+            templateFolder.setGmtCreate(date);
+            templateFolder.setCreator(templateFolderVO.getDoctorId().toString());
+        }
+        templateFolder.setGmtModified(date);
+        templateFolder.setModifier(templateFolderVO.getDoctorId().toString());
+        //获取文件夹最大数
+        Integer orderNo =templateFolderService.getMaxNo(templateFolderVO.getHospitalId());
+        Integer num = orderNo == null ? 0 :  orderNo;
+        //templateFolder.setOrderNo(num);
+        this.saveOrUpdate(templateFolder);
+        // 如果是新增,id改为负数,且文件夹放最后。
+        if (add) {
+            this.update(new UpdateWrapper<TemplateFolder>()
+                    .eq("id", templateFolder.getId())
+                    .set("id", Long.parseLong("-" + templateFolder.getId()))
+                    .set("order_no",num)
+            );
+        }
+    }
+
+
+    /**
+     * 文件夹删除
+     *
+     * @param templateFolderDelVO
+     */
+    public void delete(TemplateFolderDelVO templateFolderDelVO) {
+        // 校验权限
+        HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+        hospitalCodeSetVO.setDoctorId(templateFolderDelVO.getDoctorId());
+        hospitalCodeSetVO.setHospitalId(templateFolderDelVO.getHospitalId());
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无删除权限");
+        }
+        int count = folderMappingFacade.count(new QueryWrapper<FolderMapping>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("folder_id", templateFolderDelVO.getFolderId())
+        );
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请先删除当前文件夹下的模板");
+        }
+        // 删除
+        this.update(new UpdateWrapper<TemplateFolder>()
+                .eq("id", templateFolderDelVO.getFolderId())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("gmt_modified", DateUtil.now())
+                .set("modifier", templateFolderDelVO.getDoctorId())
+                .set("doctor_id", templateFolderDelVO.getDoctorId())
+        );
+    }
+
+
+    /**
+     * 文件夹列表
+     *
+     * @param templateFolderListVO
+     */
+    public List<TemplateFolder> list(TemplateFolderListVO templateFolderListVO) {
+        // 校验权限
+        HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+        hospitalCodeSetVO.setDoctorId(templateFolderListVO.getDoctorId());
+        hospitalCodeSetVO.setHospitalId(templateFolderListVO.getHospitalId());
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无获取文件夹列表权限");
+        }
+        int count = this.count(new QueryWrapper<TemplateFolder>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                //.eq("doctor_id", templateFolderListVO.getDoctorId())
+                .eq("hospital_id", templateFolderListVO.getHospitalId())
+                .eq("template_type", TemplateTypeEnum.AdminTemplate.getKey())
+        );
+        // 如果没有文件夹,新建一个“未分类文件夹”
+        if (0 == count) {
+            TemplateFolder templateFolder = new TemplateFolder();
+            templateFolder.setIsDeleted(IsDeleteEnum.N.getKey());
+            templateFolder.setCreator(templateFolderListVO.getDoctorId().toString());
+            templateFolder.setModifier(templateFolderListVO.getDoctorId().toString());
+            templateFolder.setDoctorId(templateFolderListVO.getDoctorId());
+            templateFolder.setHospitalId(templateFolderListVO.getHospitalId());
+            Date date = DateUtil.now();
+            templateFolder.setGmtCreate(date);
+            templateFolder.setGmtModified(date);
+            templateFolder.setName("未分类文件夹");
+            templateFolder.setOrderNo(99999);
+            templateFolder.setTemplateType(TemplateTypeEnum.AdminTemplate.getKey());
+            this.save(templateFolder);
+            List<TemplateFolder> data = new ArrayList<>();
+            data.add(templateFolder);
+            return data;
+        }
+        return this.list(new QueryWrapper<TemplateFolder>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                //.eq("doctor_id", templateFolderListVO.getDoctorId())
+                .eq("hospital_id", templateFolderListVO.getHospitalId())
+                .orderByDesc("gmt_modified")
+        );
+    }
+
+
+    /**
+     * 文件夹排序
+     *
+     * @param templateFolderSortVOList
+     */
+    public void sort(List<TemplateFolderSortVO> templateFolderSortVOList) {
+        if (ListUtil.isNotEmpty(templateFolderSortVOList)) {
+            TemplateFolderSortVO templateFolderSortVO = templateFolderSortVOList.get(0);
+            HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+            hospitalCodeSetVO.setDoctorId(templateFolderSortVO.getDoctorId());
+            hospitalCodeSetVO.setHospitalId(templateFolderSortVO.getHospitalId());
+            boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+            if (!res) {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无文件夹排序权限");
+            }
+            List<TemplateFolder> list = new ArrayList<>();
+            List<FolderMapping> folderMappingList = new ArrayList<>();
+            Date date = DateUtil.now();
+            for (TemplateFolderSortVO template : templateFolderSortVOList) {
+                //文件夹排序
+                TemplateFolder templateFolder = new TemplateFolder();
+                BeanUtil.copyProperties(template, templateFolder);
+                templateFolder.setGmtModified(date);
+                templateFolder.setModifier(templateFolderSortVO.getDoctorId().toString());
+                list.add(templateFolder);
+
+                //模板排序
+                if (ListUtil.isNotEmpty(template.getTemplateSortVOList())) {
+                    List<TemplateSortVO> templateSortVOList = template.getTemplateSortVOList();
+                    for (TemplateSortVO templateSortVO : templateSortVOList) {
+                        FolderMapping folderMapping = new FolderMapping();
+                        BeanUtil.copyProperties(templateSortVO, folderMapping);
+                        folderMapping.setGmtModified(date);
+                        folderMapping.setModifier(templateFolderSortVO.getDoctorId().toString());
+                        folderMappingList.add(folderMapping);
+                    }
+                }
+            }
+            if (ListUtil.isNotEmpty(list)){
+                templateFolderService.updateBatchById(list);
+            }
+            if (ListUtil.isNotEmpty(folderMappingList)){
+                folderMappingService.updateBatchById(folderMappingList);
+            }
+        }
+    }
+}

+ 130 - 0
icss-service/src/main/java/com/diagbot/facade/TemplateFolderFacade.java

@@ -0,0 +1,130 @@
+package com.diagbot.facade;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.FolderMapping;
+import com.diagbot.entity.TemplateFolder;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TemplateTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.TemplateFolderServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.TemplateFolderDelVO;
+import com.diagbot.vo.TemplateFolderListVO;
+import com.diagbot.vo.TemplateFolderVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhoutg
+ * @Description: 病历文件夹
+ * @date 2018年11月16日 上午11:24:36
+ */
+@Component
+public class TemplateFolderFacade extends TemplateFolderServiceImpl {
+
+    @Autowired
+    FolderMappingFacade folderMappingFacade;
+
+    /**
+     * 文件夹新增或更新
+     *
+     * @param templateFolderVO
+     */
+    public void saveOrUpdate(TemplateFolderVO templateFolderVO) {
+        boolean add = true;
+        if (templateFolderVO.getId() != null) {
+            add = false;
+        }
+        int count = this.count(new QueryWrapper<TemplateFolder>()
+            .eq("is_deleted", IsDeleteEnum.N.getKey())
+            .eq("name", templateFolderVO.getName())
+            .eq("hospital_id", templateFolderVO.getHospitalId())
+            .eq("template_type", TemplateTypeEnum.PersonalTemplate.getKey())
+            .eq("doctor_id", templateFolderVO.getDoctorId())
+            .ne(!add, "id", templateFolderVO.getId())
+        );
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该文件夹已存在");
+        }
+        TemplateFolder templateFolder = new TemplateFolder();
+        BeanUtil.copyProperties(templateFolderVO, templateFolder);
+        Date date = DateUtil.now();
+        if (add) {
+            templateFolder.setGmtCreate(date);
+            templateFolder.setCreator(templateFolderVO.getDoctorId().toString());
+        }
+        templateFolder.setGmtModified(date);
+        templateFolder.setModifier(templateFolderVO.getDoctorId().toString());
+        this.saveOrUpdate(templateFolder);
+    }
+
+
+    /**
+     * 文件夹删除
+     *
+     * @param templateFolderDelVO
+     */
+    public void delete(TemplateFolderDelVO templateFolderDelVO) {
+        int count = folderMappingFacade.count(new QueryWrapper<FolderMapping>()
+            .eq("is_deleted", IsDeleteEnum.N.getKey())
+            .eq("folder_id", templateFolderDelVO.getFolderId())
+        );
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请先删除当前文件夹下的模板");
+        }
+        // 删除
+        this.update(new UpdateWrapper<TemplateFolder>()
+            .eq("id", templateFolderDelVO.getFolderId())
+            .set("is_deleted", IsDeleteEnum.Y.getKey())
+            .set("gmt_modified", DateUtil.now())
+            .set("modifier", templateFolderDelVO.getDoctorId())
+            .set("doctor_id", templateFolderDelVO.getDoctorId())
+        );
+    }
+
+
+    /**
+     * 文件夹列表
+     *
+     * @param templateFolderListVO
+     */
+    public List<TemplateFolder> list(TemplateFolderListVO templateFolderListVO) {
+        int count = this.count(new QueryWrapper<TemplateFolder>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("doctor_id", templateFolderListVO.getDoctorId())
+                .eq("hospital_id", templateFolderListVO.getHospitalId())
+                .eq("template_type", TemplateTypeEnum.PersonalTemplate.getKey())
+        );
+        // 如果没有文件夹,新建一个“未分类文件夹”
+        if (0 == count) {
+            TemplateFolder templateFolder = new TemplateFolder();
+            templateFolder.setIsDeleted(IsDeleteEnum.N.getKey());
+            templateFolder.setCreator(templateFolderListVO.getDoctorId().toString());
+            templateFolder.setModifier(templateFolderListVO.getDoctorId().toString());
+            templateFolder.setDoctorId(templateFolderListVO.getDoctorId());
+            templateFolder.setHospitalId(templateFolderListVO.getHospitalId());
+            Date date = DateUtil.now();
+            templateFolder.setGmtCreate(date);
+            templateFolder.setGmtModified(date);
+            templateFolder.setName("未分类文件夹");
+            templateFolder.setOrderNo(99999);
+            templateFolder.setTemplateType(TemplateTypeEnum.PersonalTemplate.getKey());
+            this.save(templateFolder);
+            List<TemplateFolder> data = new ArrayList<>();
+            data.add(templateFolder);
+            return data;
+        }
+        return this.list(new QueryWrapper<TemplateFolder>()
+            .eq("is_deleted", IsDeleteEnum.N.getKey())
+            .eq("doctor_id", templateFolderListVO.getDoctorId())
+            .eq("hospital_id", templateFolderListVO.getHospitalId())
+            .orderByDesc("gmt_modified")
+        );
+    }
+}

+ 105 - 11
icss-service/src/main/java/com/diagbot/facade/TemplateInfoFacade.java

@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.HospitalDeptInfoAllDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TemplateFolderDTO;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoNormDTO;
 import com.diagbot.dto.TemplateInfoPageAllDTO;
 import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
@@ -16,23 +18,26 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.TemplateInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.Cn2SpellUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.GsonUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.SqlExecuteUtil;
 import com.diagbot.vo.HospitalCodeVo;
 import com.diagbot.vo.TemplateIdVO;
 import com.diagbot.vo.TemplateInfoAdminPageVO;
-import com.diagbot.vo.TemplateInfoPageVO;
 import com.diagbot.vo.TemplateInfoRevampVO;
 import com.diagbot.vo.TemplateInfoTypeVO;
 import com.diagbot.vo.TemplateInfoVO;
 import com.diagbot.vo.TemplateInfosIdVO;
 import com.diagbot.vo.TemplateInfosVO;
+import com.diagbot.vo.TemplateNormsFindVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -48,6 +53,10 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
 
     @Autowired
     TranServiceClient tranServiceClient;
+    @Autowired
+    TemplateInfoServiceImpl templateInfoServiceImpl;
+    @Autowired
+    TemplateNormFacade templateNormFacade;
 
     /**
      * @param templateInfoVO
@@ -116,13 +125,16 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         templates.allEq(mapAll);
         TemplateInfo datas = getOne(templates, false);
         if (datas != null) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
+            if(!datas.getId().equals(templateInfoRevampVO.getId())){
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
+            }
         }
         //3.修改表数据的模板名字
         TemplateInfo templateInfo = new TemplateInfo();
         templateInfo.setId(templateInfoRevampVO.getId());//模板id
         templateInfo.setName(templateInfoRevampVO.getModeName());//模板名称
         templateInfo.setGmtModified(DateUtil.now());//修改时间
+        templateInfo.setSpell(templateInfoRevampVO.getSpell().toUpperCase());//拼音
         boolean res = updateById(templateInfo);
         if (!res) {
             throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
@@ -167,6 +179,7 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         templateInfo.setName(templateInfosVO.getModeName());//模板名称
         templateInfo.setType(templateInfosVO.getModeType());//类型
         templateInfo.setTemplateType(TemplateTypeEnum.PersonalTemplate.getKey());//模板类型
+        templateInfo.setSpell(templateInfosVO.getSpell().toUpperCase());//拼音
         boolean res = save(templateInfo);
         if (!res) {
             throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
@@ -208,20 +221,20 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
     }
 
     /**
-     * @param page
+     * @param
      * @param templateInfoPageVO
      * @return
      */
     public TemplateInfoPageAllDTO getTemplatePageAlls(TemplateInfoAdminPageVO templateInfoPageVO) {
         //取出所有科室
-        HospitalCodeVo hospitalCodeVo =new HospitalCodeVo();
+        HospitalCodeVo hospitalCodeVo = new HospitalCodeVo();
         hospitalCodeVo.setHospitalCode(templateInfoPageVO.getHospitalCode());
         hospitalCodeVo.setDeptInfoName("");
         hospitalCodeVo.setThirdpartyName("");
         RespDTO<List<HospitalDeptInfoAllDTO>> deptInfoDTO = tranServiceClient.getHospitalDeptInfoAll(hospitalCodeVo);
         RespDTOUtil.respNGDeal(deptInfoDTO, deptInfoDTO.msg);
         List<HospitalDeptInfoAllDTO> deptInfo = deptInfoDTO.data;
-        Map<Long,HospitalDeptInfoAllDTO> deptMap =deptInfo.stream().collect(Collectors.toMap(HospitalDeptInfoAllDTO::getId,i->i));
+        Map<Long, HospitalDeptInfoAllDTO> deptMap = deptInfo.stream().collect(Collectors.toMap(HospitalDeptInfoAllDTO::getId, i -> i));
         TemplateInfoPageAllDTO data = new TemplateInfoPageAllDTO();
         //取出个人模板
         TemplateInfoTypeVO personalVO = new TemplateInfoTypeVO();
@@ -229,10 +242,10 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         personalVO.setTemplateType(TemplateTypeEnum.PersonalTemplate.getKey());
         personalVO.setHospitalDeptId(null);
         IPage<TemplateInfoPageDTO> personalTemplate = getTemplatePages(personalVO);
-        if(personalTemplate.getRecords().size()>0){
-            personalTemplate.getRecords().forEach(i->{
+        if (personalTemplate.getRecords().size() > 0) {
+            personalTemplate.getRecords().forEach(i -> {
                 HospitalDeptInfoAllDTO datas = deptMap.get(i.getHospitalDeptId());
-                if(datas!=null){
+                if (datas != null) {
                     i.setConceptDeptName(datas.getConceptDeptName());
                     i.setThirdpartyName(datas.getName());
                 }
@@ -246,10 +259,10 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         adminVO.setDoctorId(null);
         adminVO.setTemplateType(TemplateTypeEnum.AdminTemplate.getKey());
         IPage<TemplateInfoPageDTO> adminTemplate = getTemplatePages(adminVO);
-        if(adminTemplate.getRecords().size()>0){
-            adminTemplate.getRecords().forEach(i->{
+        if (adminTemplate.getRecords().size() > 0) {
+            adminTemplate.getRecords().forEach(i -> {
                 HospitalDeptInfoAllDTO datas = deptMap.get(i.getHospitalDeptId());
-                if(datas!=null){
+                if (datas != null) {
                     i.setConceptDeptName(datas.getConceptDeptName());
                     i.setThirdpartyName(datas.getName());
                 }
@@ -279,4 +292,85 @@ public class TemplateInfoFacade extends TemplateInfoServiceImpl {
         return data;
     }
 
+    /**
+     * @return
+     */
+    public Boolean piyinUp() {
+        Boolean res = false;
+        QueryWrapper<TemplateInfo> templateInfoQueryWrapper = new QueryWrapper<>();
+        templateInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .isNull("spell");
+        List<TemplateInfo> list = list(templateInfoQueryWrapper);
+        if (ListUtil.isNotEmpty(list)) {
+            Date now = DateUtil.now();
+            for (TemplateInfo templateInfo : list) {
+                templateInfo.setSpell(Cn2SpellUtil.converterToFirstSpell(templateInfo.getName()));
+                templateInfo.setGmtModified(now);
+            }
+            List<List<TemplateInfo>> listList = SqlExecuteUtil.divideList(list, 200);
+            int i = 0;
+            for (List<TemplateInfo> templateInfoList : listList) {
+                res = templateInfoServiceImpl.updateBatchById(templateInfoList);
+                i++;
+            }
+            System.out.println("批量更新拼音" + i + "次!");
+        }
+        return res;
+    }
+
+    /**
+     * 个人模糊查询模板
+     *
+     * @param templateNormsFindVO
+     * @return
+     */
+    public List<TemplateInfoNormDTO> findTemplateNorm(TemplateNormsFindVO templateNormsFindVO) {
+        List<TemplateInfoNormDTO> data = templateInfoServiceImpl.findStandardTemplates(templateNormsFindVO);
+        return data;
+    }
+
+    /**
+     * 获取个人模板
+     *
+     * @param templateInfoPersonVO
+     * @return
+     */
+    public TemplateInfoPageAllDTO getTemplateAll(TemplateInfoAdminPageVO templateInfoPersonVO) {
+        //取出所有科室
+        HospitalCodeVo hospitalCodeVo = new HospitalCodeVo();
+        hospitalCodeVo.setHospitalCode(templateInfoPersonVO.getHospitalCode());
+        hospitalCodeVo.setDeptInfoName("");
+        hospitalCodeVo.setThirdpartyName("");
+        RespDTO<List<HospitalDeptInfoAllDTO>> deptInfoDTO = tranServiceClient.getHospitalDeptInfoAll(hospitalCodeVo);
+        RespDTOUtil.respNGDeal(deptInfoDTO, deptInfoDTO.msg);
+        List<HospitalDeptInfoAllDTO> deptInfo = deptInfoDTO.data;
+        Map<Long, HospitalDeptInfoAllDTO> deptMap = deptInfo.stream().collect(Collectors.toMap(HospitalDeptInfoAllDTO::getId, i -> i));
+        TemplateInfoPageAllDTO data = new TemplateInfoPageAllDTO();
+        //取出个人模板
+        TemplateInfoTypeVO personalVO = new TemplateInfoTypeVO();
+        BeanUtil.copyProperties(templateInfoPersonVO, personalVO);
+        personalVO.setTemplateType(TemplateTypeEnum.PersonalTemplate.getKey());
+        personalVO.setHospitalDeptId(null);
+        IPage<TemplateInfoPageDTO> personalTemplate = getTemplatePages(personalVO);
+        if (personalTemplate.getRecords().size() > 0) {
+            personalTemplate.getRecords().forEach(i -> {
+                HospitalDeptInfoAllDTO datas = deptMap.get(i.getHospitalDeptId());
+                if (datas != null) {
+                    i.setConceptDeptName(datas.getConceptDeptName());
+                    i.setThirdpartyName(datas.getName());
+                }
+
+            });
+        }
+        data.setPersonalTemplate(personalTemplate);
+        return data;
+    }
+
+    /**
+     * @return
+     */
+
+    public List<TemplateFolderDTO> getTemplateNorm() {
+        return templateNormFacade.getTemplateNorm();
+    }
 }

+ 343 - 0
icss-service/src/main/java/com/diagbot/facade/TemplateNormFacade.java

@@ -0,0 +1,343 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.HospitalDeptInfoAllDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TemplateFolderDTO;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoNormDTO;
+import com.diagbot.entity.FolderMapping;
+import com.diagbot.entity.TemplateFolder;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TemplateTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.FolderMappingServiceImpl;
+import com.diagbot.service.impl.TemplateFolderServiceImpl;
+import com.diagbot.service.impl.TemplateInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.HospitalCodeSetVO;
+import com.diagbot.vo.HospitalCodeVo;
+import com.diagbot.vo.TemplateIdVO;
+import com.diagbot.vo.TemplateNormUpVO;
+import com.diagbot.vo.TemplateNormsFindVO;
+import com.diagbot.vo.TemplateNormsIdsVO;
+import com.diagbot.vo.TemplateNormsParamVO;
+import com.diagbot.vo.TemplateNormsVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:25
+ */
+@Component
+public class TemplateNormFacade<tranServiceClient> extends TemplateInfoServiceImpl {
+
+    @Autowired
+    TemplateFolderServiceImpl templateFolderServiceImpl;
+    @Autowired
+    TemplateInfoServiceImpl templateInfoServiceImpl;
+    @Autowired
+    AdminCheckFacade adminCheckFacade;
+    @Autowired
+    FolderMappingFacade folderMappingFacade;
+    @Autowired
+    FolderMappingServiceImpl folderMappingServiceImpl;
+    @Autowired
+    TranServiceClient tranServiceClient;
+    /**
+     * 根据模板id修改模板名称和文件夹名称
+     *
+     * @param templateNormUpVO
+     * @return
+     */
+    public boolean updateTemplateNorm(TemplateNormUpVO templateNormUpVO) {
+        //检验权限
+        HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+        hospitalCodeSetVO.setDoctorId(templateNormUpVO.getDoctorId());
+        hospitalCodeSetVO.setHospitalId(-9L);
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无修改权限");
+        }
+        //1.先判断数据是否存在有效
+        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", templateNormUpVO.getId());
+        int sum = count(templateInfoFand);
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板不存在");
+        }
+        //2.先判断数据是否有权限修改
+        QueryWrapper<TemplateInfo> templateInfoAmind = new QueryWrapper<>();
+        templateInfoAmind
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", templateNormUpVO.getId())
+                .eq("template_type", TemplateTypeEnum.AdminTemplate.getKey());
+        int sumA = count(templateInfoAmind);
+        if (sumA == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "个人模板无权修改");
+        }
+        //2.再判断该科室下模板名是否重复重在
+        QueryWrapper<TemplateInfo> templates = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_dept_id", templateNormUpVO.getHospitalDeptId());
+        //mapAll.put("doctor_id", templateInfoRevampVO.getDoctorId());
+        mapAll.put("hospital_id", -9);
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("template_type", TemplateTypeEnum.AdminTemplate.getKey());
+        mapAll.put("name", templateNormUpVO.getModeName());
+        //mapAll.put("type", templateInfoRevampVO.getType());
+        templates.allEq(mapAll);
+        TemplateInfo datas = getOne(templates, false);
+        if (datas != null) {
+            if(!datas.getId().equals(templateNormUpVO.getId())){
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
+            }
+        }
+        //3.修改表数据的模板名字
+        TemplateInfo templateInfo = new TemplateInfo();
+        templateInfo.setId(templateNormUpVO.getId());//模板id
+        templateInfo.setName(templateNormUpVO.getModeName());//模板名称
+        templateInfo.setGmtModified(DateUtil.now());//修改时间
+        templateInfo.setSpell(templateNormUpVO.getSpell());
+        templateInfo.setSex(templateNormUpVO.getSex());
+        res = updateById(templateInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+        //更新关系
+        if (res) {
+            Long orderNo = folderMappingServiceImpl.getMaxOrderNo(templateNormUpVO.getFolderId());
+//            Long num = orderNo == null ? 0 : orderNo;
+            res = folderMappingFacade.update(new UpdateWrapper<FolderMapping>()
+                    .eq("template_id", templateNormUpVO.getId())
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .set("folder_id", templateNormUpVO.getFolderId())
+                    .set("order_no", orderNo));
+        }
+        return res;
+
+    }
+
+    /**
+     * 保存病历模板
+     *
+     * @param templateNormsVO
+     * @return
+     */
+    public boolean saveTemplateNorm(TemplateNormsVO templateNormsVO) {
+        //检验权限
+        HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+        hospitalCodeSetVO.setDoctorId(templateNormsVO.getDoctorId());
+        hospitalCodeSetVO.setHospitalId(-9L);
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无修改权限");
+        }
+        //1.判断同科室下是否存在模板名相同的数据
+        TemplateInfo templateInfo = new TemplateInfo();
+        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_dept_id", templateNormsVO.getHospitalDeptId());
+        //mapAll.put("doctor_id", templateInfosVO.getDoctorId());
+        mapAll.put("hospital_id", -9);
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("template_type", TemplateTypeEnum.AdminTemplate.getKey());
+        mapAll.put("name", templateNormsVO.getModeName());
+        //mapAll.put("type", templateInfosVO.getModeType());
+
+        templateInfoFand.allEq(mapAll);
+        int sum = count(templateInfoFand);
+        if (sum != 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名存在");
+        }
+        //2.获取传入的数据,保存到数据表中。
+        templateInfo.setCreator(templateNormsVO.getDoctorId().toString());//创建人id
+        templateInfo.setDoctorId(templateNormsVO.getDoctorId());//医生id
+        templateInfo.setGmtCreate(DateUtil.now());//创建时间
+        templateInfo.setHospitalDeptId(templateNormsVO.getHospitalDeptId());//部门id
+        templateInfo.setHospitalId(-9L);//医院id
+        templateInfo.setSex(templateNormsVO.getSex());
+        templateInfo.setPreview(GsonUtil.toJson(templateNormsVO.getPreview()));//文本的展示
+        templateInfo.setDataJson(templateNormsVO.getDataJson());//页面json
+        templateInfo.setName(templateNormsVO.getModeName());//模板名称
+        templateInfo.setSpell(templateNormsVO.getModeSpell().toUpperCase());
+        templateInfo.setType(templateNormsVO.getModeType());//类型
+        templateInfo.setTemplateType(TemplateTypeEnum.AdminTemplate.getKey());//模板类型
+        res = save(templateInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
+        }
+        //将id转为负数
+        Long num = (templateInfo.getId() > 0) ? -templateInfo.getId() : templateInfo.getId();
+        res = update(new UpdateWrapper<TemplateInfo>()
+                .in("id", templateInfo.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("id", num));
+        if (res) {
+            FolderMapping folderMapping = new FolderMapping();
+            folderMapping.setFolderId(templateNormsVO.getFolderId());
+            folderMapping.setTemplateId(num);
+            folderMapping.setCreator(templateNormsVO.getDoctorId().toString());
+            folderMapping.setGmtCreate(DateUtil.now());
+            Long orderNo = folderMappingServiceImpl.getMaxOrderNo(templateNormsVO.getFolderId());
+            folderMapping.setOrderNo(orderNo);
+            res = folderMappingFacade.save(folderMapping);
+        }
+
+        return res;
+    }
+
+    /**
+     * 根据模板id批量删除病历模板
+     *
+     * @param templateNormsIdsVO
+     * @return
+     */
+    public boolean cancelTemplateInfo(TemplateNormsIdsVO templateNormsIdsVO) {
+        //检验权限
+        HospitalCodeSetVO hospitalCodeSetVO = new HospitalCodeSetVO();
+        hospitalCodeSetVO.setDoctorId(templateNormsIdsVO.getDoctorId());
+        hospitalCodeSetVO.setHospitalId(templateNormsIdsVO.getHospitalId());
+        boolean res = adminCheckFacade.getadminCheck(hospitalCodeSetVO);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "暂无删除权限");
+        }
+        //1.获取传入的ids数据
+        String ids = templateNormsIdsVO.getIds();
+        //2.截取到最后一个
+        String substring = ids.substring(0, ids.length());
+        //System.out.println(substring);
+        //3.以逗号分割
+        String[] splitIds = substring.split(",");
+        //验证转化好的参数
+        if (ListUtil.isEmpty(ListUtil.arrayToList(splitIds))) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "请输入模板id");
+        }
+        //把分割的id数据传入对象中,在表中批量删除
+        UpdateWrapper<TemplateInfo> templateInfoNew = new UpdateWrapper<>();
+        templateInfoNew
+                .in("id", ListUtil.arrayToList(splitIds))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("template_type", TemplateTypeEnum.AdminTemplate.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                //.set("modifier",UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        res = update(new TemplateInfo(), templateInfoNew);
+        //删除模板和文件的绑定关系
+        if (res) {
+            res = folderMappingFacade.update(new UpdateWrapper<FolderMapping>()
+                    .in("template_id", ListUtil.arrayToList(splitIds))
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .set("is_deleted", IsDeleteEnum.Y.getKey()));
+        }
+        return res;
+    }
+
+    /**
+     * 查询标准模板列表
+     *
+     * @return
+     */
+    public List<TemplateFolderDTO> getTemplateNorm() {
+        //先获取文件夹
+        QueryWrapper<TemplateFolder> templateFolderQuery = new QueryWrapper<TemplateFolder>();
+        templateFolderQuery
+                .eq("hospital_id", -9)
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("template_type", TemplateTypeEnum.AdminTemplate.getKey())
+                //.eq("doctor_id", templateNormsParamVO.getDoctorId())
+                .orderByAsc("order_no");
+        List<TemplateFolder> datas = templateFolderServiceImpl.list(templateFolderQuery);
+        List<TemplateFolderDTO> data = new ArrayList<TemplateFolderDTO>();
+        //过滤
+        data = BeanUtil.listCopyTo(datas, TemplateFolderDTO.class);
+        //再获取模板
+        TemplateNormsParamVO templateNormsParamVO = new TemplateNormsParamVO();
+        templateNormsParamVO.setHospitalId(-9L);
+        List<TemplateInfoNormDTO> templateDatas = templateInfoServiceImpl.getStandardTemplates(templateNormsParamVO);
+        HospitalCodeVo hospitalCodeVo = new HospitalCodeVo();
+        hospitalCodeVo.setHospitalCode("LT");
+        RespDTO<List<HospitalDeptInfoAllDTO>> deptInfoDTO = tranServiceClient.getHospitalDeptInfoAll(hospitalCodeVo);
+        RespDTOUtil.respNGDeal(deptInfoDTO, deptInfoDTO.msg);
+        List<HospitalDeptInfoAllDTO> deptInfo = deptInfoDTO.data;
+        Map<Long, HospitalDeptInfoAllDTO> deptMap = deptInfo.stream().collect(Collectors.toMap(HospitalDeptInfoAllDTO::getId, i -> i));
+        if (templateDatas.size() > 0) {
+            templateDatas.forEach(i -> {
+                HospitalDeptInfoAllDTO dataDept = deptMap.get(i.getHospitalDeptId());
+                if (dataDept != null) {
+                    i.setHospitalDeptName(dataDept.getConceptDeptName());
+                }
+
+            });
+        }
+        Map<Long, List<TemplateInfoNormDTO>> map
+                = EntityUtil.makeEntityListMap(templateDatas, "folderId");
+        //把模板放进文件夹中
+        if (data.size() > 0) {
+            for (TemplateFolderDTO ts : data) {
+                List<TemplateInfoNormDTO> tmp = map.get(ts.getId());
+                if (ListUtil.isNotEmpty(tmp)) {
+                    ts.setTemplateInfo(tmp);
+                    ts.setTemplateInfoCount(tmp.size());
+                } else {
+                    ts.setTemplateInfoCount(0);
+                }
+            }
+        }
+
+        return data;
+    }
+
+    /**
+     * 根据模板id获取病历模板内容
+     *
+     * @param templateIdVO
+     * @return
+     */
+    public TemplateInfoDTO getTemplateIdData(TemplateIdVO templateIdVO) {
+        //根据传入的医生id和部门id还有医院id在数据表中查出相应的模板数据
+        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
+        templateInfoQuery
+                .eq("id", templateIdVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("template_type", TemplateTypeEnum.AdminTemplate.getKey());
+        TemplateInfoDTO data = new TemplateInfoDTO();
+        TemplateInfo datas = getOne(templateInfoQuery, false);
+        if (datas == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板不存在!");
+        }
+        //过滤
+        BeanUtil.copyProperties(datas, data);
+        return data;
+    }
+
+    /**
+     * 模糊查询模板
+     *
+     * @param templateNormsFindVO
+     * @return
+     */
+    public List<TemplateInfoNormDTO> findTemplateNorm(TemplateNormsFindVO templateNormsFindVO) {
+        List<TemplateInfoNormDTO> data = templateInfoServiceImpl.findStandardTemplates(templateNormsFindVO);
+        return data;
+    }
+}

+ 79 - 0
icss-service/src/main/java/com/diagbot/facade/TemplateQuoteFacade.java

@@ -0,0 +1,79 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.DoctorInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.entity.TemplateQuote;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TemplateTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.TemplateQuoteServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.TemplateQuoteVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @author gaodm
+ * @Description:
+ * @date 2020-01-09 18:29
+ */
+@Component
+public class TemplateQuoteFacade extends TemplateQuoteServiceImpl {
+
+    @Autowired
+    private TemplateInfoFacade templateInfoFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    /**
+     * 添加模板引用
+     *
+     * @param templateQuoteVO
+     * @return
+     */
+    public Boolean addTemplateQuote(TemplateQuoteVO templateQuoteVO) {
+        //模板存在性验证
+        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
+        templateInfoQuery
+                .eq("id", templateQuoteVO.getTemplateId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+        TemplateInfo templateInfo = templateInfoFacade.getOne(templateInfoQuery, false);
+        if (null == templateInfo) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板不存在!");
+        }
+        //医生存在性验证
+        RespDTO<DoctorInfoDTO> res
+                = tranServiceClient.getDoctorInfoById(templateQuoteVO.getDoctorId());
+        RespDTOUtil.respNGDeal(res, "该医生不存在!");
+        //逻辑验证
+        if (templateInfo.getTemplateType().equals(TemplateTypeEnum.PersonalTemplate.getKey())) {
+            if (!templateInfo.getDoctorId().equals(templateQuoteVO.getDoctorId())) {
+                throw new CommonException(CommonErrorCode.NO_PERMISSION, "无权引用该模板!");
+            }
+        }
+
+        //引用模板
+        Date now = DateUtil.now();
+        TemplateQuote templateQuote = new TemplateQuote();
+        BeanUtil.copyProperties(templateQuoteVO, templateQuote);
+        templateQuote.setCreator(templateQuoteVO.getDoctorId().toString());
+        templateQuote.setModifier(templateQuoteVO.getDoctorId().toString());
+        templateQuote.setGmtCreate(now);
+        templateQuote.setGmtModified(now);
+
+        boolean resSave = this.save(templateQuote);
+        if (!resSave) {
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED, "引用模板记录失败!");
+        }
+
+        return resSave;
+    }
+}

+ 17 - 0
icss-service/src/main/java/com/diagbot/mapper/FolderMappingMapper.java

@@ -0,0 +1,17 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.FolderMapping;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 模板文件夹映射表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+public interface FolderMappingMapper extends BaseMapper<FolderMapping> {
+
+    public Long  getMaxOrderNo(Long folderId);
+}

+ 16 - 0
icss-service/src/main/java/com/diagbot/mapper/TemplateFolderMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TemplateFolder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 模板文件夹表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+public interface TemplateFolderMapper extends BaseMapper<TemplateFolder> {
+    public Integer  getMaxNo(Long hospitald);
+}

+ 6 - 0
icss-service/src/main/java/com/diagbot/mapper/TemplateInfoMapper.java

@@ -3,6 +3,9 @@ package com.diagbot.mapper;
 import java.util.List;
 import java.util.Map;
 
+import com.diagbot.dto.TemplateInfoNormDTO;
+import com.diagbot.vo.TemplateNormsFindVO;
+import com.diagbot.vo.TemplateNormsParamVO;
 import org.apache.ibatis.annotations.Param;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -28,4 +31,7 @@ public interface TemplateInfoMapper extends BaseMapper<TemplateInfo> {
 
 	public IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO);
 
+    List<TemplateInfoNormDTO> getStandardTemplate(TemplateNormsParamVO templateNormsParamVO);
+
+	List<TemplateInfoNormDTO> findStandardTemplate(TemplateNormsFindVO templateNormsFindVO);
 }

+ 16 - 0
icss-service/src/main/java/com/diagbot/mapper/TemplateQuoteMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TemplateQuote;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-01-09
+ */
+public interface TemplateQuoteMapper extends BaseMapper<TemplateQuote> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.FolderMapping;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 模板文件夹映射表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+public interface FolderMappingService extends IService<FolderMapping> {
+    public Long  getMaxOrderNo(Long folderId);
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TemplateFolder;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 模板文件夹表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+public interface TemplateFolderService extends IService<TemplateFolder> {
+    public Integer  getMaxNo(Long hospitald);
+}

+ 6 - 2
icss-service/src/main/java/com/diagbot/service/TemplateInfoService.java

@@ -1,15 +1,16 @@
 package com.diagbot.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoNormDTO;
 import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
 import com.diagbot.vo.TemplateInfoPageVO;
+import com.diagbot.vo.TemplateNormsFindVO;
+import com.diagbot.vo.TemplateNormsParamVO;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -28,5 +29,8 @@ public interface TemplateInfoService extends IService<TemplateInfo> {
 
     public IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO);
 
+    public List<TemplateInfoNormDTO> getStandardTemplates(TemplateNormsParamVO templateNormsParamVO);
 
+
+    List<TemplateInfoNormDTO> findStandardTemplates(TemplateNormsFindVO templateNormsFindVO);
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TemplateQuote;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-01-09
+ */
+public interface TemplateQuoteService extends IService<TemplateQuote> {
+
+}

+ 24 - 0
icss-service/src/main/java/com/diagbot/service/impl/FolderMappingServiceImpl.java

@@ -0,0 +1,24 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.FolderMapping;
+import com.diagbot.mapper.FolderMappingMapper;
+import com.diagbot.service.FolderMappingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 模板文件夹映射表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Service
+public class FolderMappingServiceImpl extends ServiceImpl<FolderMappingMapper, FolderMapping> implements FolderMappingService {
+
+    @Override
+    public Long getMaxOrderNo(Long folderId) {
+        return baseMapper.getMaxOrderNo(folderId);
+    }
+}

+ 24 - 0
icss-service/src/main/java/com/diagbot/service/impl/TemplateFolderServiceImpl.java

@@ -0,0 +1,24 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TemplateFolder;
+import com.diagbot.mapper.TemplateFolderMapper;
+import com.diagbot.service.TemplateFolderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 模板文件夹表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Service
+public class TemplateFolderServiceImpl extends ServiceImpl<TemplateFolderMapper, TemplateFolder> implements TemplateFolderService {
+
+    @Override
+    public Integer getMaxNo(Long hospitald) {
+        return baseMapper.getMaxNo(hospitald);
+    }
+}

+ 11 - 0
icss-service/src/main/java/com/diagbot/service/impl/TemplateInfoServiceImpl.java

@@ -3,11 +3,14 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoNormDTO;
 import com.diagbot.dto.TemplateInfoPageDTO;
 import com.diagbot.entity.TemplateInfo;
 import com.diagbot.mapper.TemplateInfoMapper;
 import com.diagbot.service.TemplateInfoService;
 import com.diagbot.vo.TemplateInfoPageVO;
+import com.diagbot.vo.TemplateNormsFindVO;
+import com.diagbot.vo.TemplateNormsParamVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -37,5 +40,13 @@ public class TemplateInfoServiceImpl extends ServiceImpl<TemplateInfoMapper, Tem
         return baseMapper.getTemplatePages(templateInfoPageVO);
     }
 
+    @Override
+    public List<TemplateInfoNormDTO> getStandardTemplates(TemplateNormsParamVO templateNormsParamVO) {
+        return baseMapper.getStandardTemplate(templateNormsParamVO);
+    }
 
+
+    public List<TemplateInfoNormDTO> findStandardTemplates(TemplateNormsFindVO templateNormsFindVO) {
+        return baseMapper.findStandardTemplate(templateNormsFindVO);
+    }
 }

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TemplateQuote;
+import com.diagbot.mapper.TemplateQuoteMapper;
+import com.diagbot.service.TemplateQuoteService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-01-09
+ */
+@Service
+public class TemplateQuoteServiceImpl extends ServiceImpl<TemplateQuoteMapper, TemplateQuote> implements TemplateQuoteService {
+
+}

+ 29 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateFolderDelVO.java

@@ -0,0 +1,29 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 模板文件夹表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Setter
+@Getter
+public class TemplateFolderDelVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "请输入文件夹id")
+    private Long folderId;
+    @NotNull(message = "请输入医院id")
+    private Long hospitalId;
+    @NotNull(message = "请输入医生id")
+    private Long doctorId;
+}

+ 32 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateFolderListVO.java

@@ -0,0 +1,32 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 模板文件夹表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Setter
+@Getter
+public class TemplateFolderListVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+}

+ 24 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateFolderSortObjVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 模板文件夹排序入参
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Getter
+@Setter
+public class TemplateFolderSortObjVO implements Serializable {
+
+   private List<TemplateFolderSortVO> TemplateFolderSortVOList;
+
+}

+ 63 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateFolderSortVO.java

@@ -0,0 +1,63 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 模板文件夹表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Getter
+@Setter
+public class TemplateFolderSortVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    //模板排序
+    List<TemplateSortVO> templateSortVOList = new ArrayList<>();
+
+}

+ 58 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateFolderVO.java

@@ -0,0 +1,58 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 模板文件夹表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Setter
+@Getter
+public class TemplateFolderVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @NotBlank(message = "名称不能为空")
+    private String name;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 模板类型(个人1,管理员2)
+     */
+    private Integer templateType;
+
+    /**
+     * 排序号
+     */
+    private Long orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 34 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateInfoPersonVO.java

@@ -0,0 +1,34 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-13 17:32
+ */
+@Setter
+@Getter
+public class TemplateInfoPersonVO {
+
+    private Long doctorId;
+
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+    /**
+     * 部门id
+     */
+    private Long hospitalDeptId;//部门id
+
+    //	@NotBlank(message = "请输入模板类型")
+    private String type;//模板类型
+
+    private List<Integer> sex;//性别
+
+    private  String hospitalCode;
+}

+ 3 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateInfoRevampVO.java

@@ -38,4 +38,7 @@ public class TemplateInfoRevampVO{
 	
 	@NotBlank(message = "请输入模板类型")
 	private String type;//模板名
+
+	@NotBlank(message = "请输入模板拼音首字母")
+	private String spell;//拼音
 }

+ 21 - 20
icss-service/src/main/java/com/diagbot/vo/TemplateInfosVO.java

@@ -1,13 +1,12 @@
 package com.diagbot.vo;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
- * 
  * @author wangfeng
  * @Description: 病历保存
  * @date 2018年11月16日 下午3:35:05
@@ -15,20 +14,22 @@ import lombok.Setter;
 @Getter
 @Setter
 public class TemplateInfosVO {
-	@NotBlank(message = "请输入模板名字")
-	private String modeName;//模板名字
-	@NotNull(message = "请输入医生id")
-	private Long doctorId;//医生id
-	@NotNull(message = "请输入医院id")
-	private Long hospitalId;//医院id
-	@NotNull(message = "请输入部门id")
-	private Long hospitalDeptId;//部门id
-	@NotNull(message = "请输入性别")
-	private Integer sex;//性别
-	@NotBlank(message = "请输入模板类型")
-	private String modeType;//模板类型
-	@NotNull(message = "请输入预览文本")
-	private ContentsVO preview;//预览文本
-	@NotBlank(message = "请输入模板数据")
-	private String dataJson;//模板数据
+    @NotBlank(message = "请输入模板名字")
+    private String modeName;//模板名字
+    @NotNull(message = "请输入医生id")
+    private Long doctorId;//医生id
+    @NotNull(message = "请输入医院id")
+    private Long hospitalId;//医院id
+    @NotNull(message = "请输入部门id")
+    private Long hospitalDeptId;//部门id
+    @NotNull(message = "请输入性别")
+    private Integer sex;//性别
+    @NotBlank(message = "请输入模板类型")
+    private String modeType;//模板类型
+    @NotNull(message = "请输入预览文本")
+    private ContentsVO preview;//预览文本
+    @NotBlank(message = "请输入模板数据")
+    private String dataJson;//模板数据
+    @NotBlank(message = "请输入模板拼音首字母")
+    private String spell;//拼音
 }

+ 42 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateNormUpVO.java

@@ -0,0 +1,42 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:30
+ */
+@Setter
+@Getter
+public class TemplateNormUpVO {
+
+    @NotNull(message = "请输入模板id")
+    private Long id;//模板id
+    @NotBlank(message = "请输入模板名")
+    private String modeName;//模板名
+    @NotBlank(message = "请输入模板拼音")
+    private String spell;//模板拼音
+    /**
+     * 医生id
+     */
+    @NotNull(message = "请输入医生id")
+    private Long doctorId;
+    /**
+     * 部门id
+     */
+    @NotNull(message = "请输入部门id")
+    private Long hospitalDeptId;//部门id
+    /**
+     * 医院编码
+     */
+    @NotNull(message = "请输入文件Id")
+    private Long folderId;
+    @NotNull(message = "请输入性别")
+    private Integer sex;//性别
+
+}

+ 16 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateNormsFindVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-13 15:32
+ */
+@Setter
+@Getter
+public class TemplateNormsFindVO {
+    private  String name;
+    private  Long templateType;
+}

+ 24 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateNormsIdsVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:49
+ */
+@Setter
+@Getter
+public class TemplateNormsIdsVO {
+    @NotBlank(message = "请输入模板id")
+    private String ids;
+    @NotNull(message = "请输入医院编码")
+    private Long hospitalId;
+    @NotNull(message = "请输入医生编码")
+    private Long doctorId;
+
+}

+ 18 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateNormsParamVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:58
+ */
+@Setter
+@Getter
+public class TemplateNormsParamVO {
+    //private Long doctorId;
+    private Long hospitalId;
+}

+ 39 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateNormsVO.java

@@ -0,0 +1,39 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:42
+ */
+@Setter
+@Getter
+public class TemplateNormsVO {
+
+    @NotBlank(message = "请输入模板名字")
+    private String modeName;//模板名字
+    @NotBlank(message = "请输入模板拼音")
+    private String modeSpell;//模板名字
+    @NotNull(message = "请输入医生id")
+    private Long doctorId;//医生id
+    @NotNull(message = "请输入医院id")
+    private Long hospitalId;//医院id
+    @NotNull(message = "请输入部门id")
+    private Long hospitalDeptId;//部门id
+    @NotNull(message = "请输入性别")
+    private Integer sex;//性别
+    @NotBlank(message = "请输入模板类型")
+    private String modeType;//模板类型
+    @NotNull(message = "请输入预览文本")
+    private ContentsVO preview;//预览文本
+    @NotBlank(message = "请输入模板数据")
+    private String dataJson;//模板数据
+    @NotNull(message = "请输入文件夹id")
+    private Long folderId;
+
+}

+ 32 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateQuoteVO.java

@@ -0,0 +1,32 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/1/13 13:30
+ */
+@Getter
+@Setter
+public class TemplateQuoteVO {
+    /**
+     * 模板id
+     */
+    @NotNull(message="请输入模板id")
+    private Long templateId;
+
+    /**
+     * 医生id
+     */
+    @NotNull(message="请输入医生id")
+    private Long doctorId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 48 - 0
icss-service/src/main/java/com/diagbot/vo/TemplateSortVO.java

@@ -0,0 +1,48 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 模板文件夹表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Getter
+@Setter
+public class TemplateSortVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 模板id
+     */
+    private Long templateId;
+
+    /**
+     * 文件夹id
+     */
+    private Long folderId;
+
+    /**
+     * 排序号
+     */
+    private Long orderNo;
+
+}

+ 20 - 0
icss-service/src/main/java/com/diagbot/web/FolderMappingController.java

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 模板文件夹映射表 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@Controller
+@RequestMapping("/folderMapping")
+public class FolderMappingController {
+
+}

+ 84 - 0
icss-service/src/main/java/com/diagbot/web/TemplateFolderAdminController.java

@@ -0,0 +1,84 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.TemplateFolder;
+import com.diagbot.facade.TemplateFolderAdminFacade;
+import com.diagbot.facade.TemplateFolderFacade;
+import com.diagbot.vo.TemplateFolderDelVO;
+import com.diagbot.vo.TemplateFolderListVO;
+import com.diagbot.vo.TemplateFolderSortObjVO;
+import com.diagbot.vo.TemplateFolderSortVO;
+import com.diagbot.vo.TemplateFolderVO;
+import com.sun.org.apache.xpath.internal.operations.Bool;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ * 模板文件夹表 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@RestController
+@RequestMapping("/templateFolderAdmin")
+@Api(value = "病历模板文件夹管理员API", tags = { "病历模板文件夹管理员API" })
+public class TemplateFolderAdminController {
+
+    @Autowired
+    TemplateFolderAdminFacade templateFolderAdminFacade;
+
+    @ApiOperation(value = "文件夹新增或更新[by:zhoutg]",
+            notes = "")
+    @PostMapping("/saveOrUpdate")
+    @SysLogger("saveOrUpdate")
+    @Transactional
+    public RespDTO<Boolean> saveOrUpdate(@Valid @RequestBody TemplateFolderVO templateFolderVO) {
+        templateFolderAdminFacade.saveOrUpdate(templateFolderVO);
+        return RespDTO.onSuc(true);
+    }
+
+
+    @ApiOperation(value = "文件夹删除[by:zhoutg]",
+            notes = "folderId: 文件夹id<br>")
+    @PostMapping("/delete")
+    @SysLogger("delete")
+    @Transactional
+    public RespDTO<Boolean> delete(@RequestBody TemplateFolderDelVO templateFolderDelVO) {
+        templateFolderAdminFacade.delete(templateFolderDelVO);
+        return RespDTO.onSuc(true);
+    }
+
+
+    @ApiOperation(value = "文件夹列表[by:zhoutg]",
+            notes = "")
+    @PostMapping("/list")
+    @SysLogger("list")
+    public RespDTO<List<TemplateFolder>> list(@RequestBody TemplateFolderListVO templateFoldeListVO) {
+        List<TemplateFolder> data = templateFolderAdminFacade.list(templateFoldeListVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    @ApiOperation(value = "文件夹排序[by:zhoutg]",
+            notes = "")
+    @PostMapping("/sort")
+    @SysLogger("sort")
+    @Transactional
+    public RespDTO<Boolean> sort(@RequestBody TemplateFolderSortObjVO templateFolderSortObjVO) {
+        templateFolderAdminFacade.sort(templateFolderSortObjVO.getTemplateFolderSortVOList());
+        return RespDTO.onSuc(true);
+    }
+}

+ 69 - 0
icss-service/src/main/java/com/diagbot/web/TemplateFolderController.java

@@ -0,0 +1,69 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.TemplateFolder;
+import com.diagbot.facade.TemplateFolderFacade;
+import com.diagbot.vo.TemplateFolderListVO;
+import com.diagbot.vo.TemplateFolderDelVO;
+import com.diagbot.vo.TemplateFolderVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 模板文件夹表 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-01-09
+ */
+@RestController
+@RequestMapping("/templateFolder")
+@Api(value = "病历模板文件夹医生端API", tags = { "病历模板文件夹医生端API" })
+public class TemplateFolderController {
+
+    @Autowired
+    TemplateFolderFacade templateFolderFacade;
+
+    @ApiOperation(value = "文件夹新增或更新[by:zhoutg]",
+            notes = "")
+    @PostMapping("/saveOrUpdate")
+    @SysLogger("saveOrUpdate")
+    @Transactional
+    public RespDTO<Boolean> saveOrUpdate(@RequestBody TemplateFolderVO templateFolderVO) {
+        templateFolderFacade.saveOrUpdate(templateFolderVO);
+        return RespDTO.onSuc(true);
+    }
+
+
+    @ApiOperation(value = "文件夹删除[by:zhoutg]",
+            notes = "folderId: 文件夹id<br>")
+    @PostMapping("/delete")
+    @SysLogger("delete")
+    @Transactional
+    public RespDTO<Boolean> delete(@RequestBody TemplateFolderDelVO templateFolderDelVO) {
+        templateFolderFacade.delete(templateFolderDelVO);
+        return RespDTO.onSuc(true);
+    }
+
+
+    @ApiOperation(value = "文件夹列表[by:zhoutg]",
+            notes = "")
+    @PostMapping("/list")
+    @SysLogger("list")
+    public RespDTO<List<TemplateFolder>> list(@RequestBody TemplateFolderListVO templateFoldeListVO) {
+        List<TemplateFolder> data = templateFolderFacade.list(templateFoldeListVO);
+        return RespDTO.onSuc(data);
+    }
+}

+ 2 - 0
icss-service/src/main/java/com/diagbot/web/TemplateInfoAdminController.java

@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
 
@@ -31,6 +32,7 @@ import javax.validation.Valid;
 @RequestMapping("/templateAdmin")
 @Api(value = "管理员病历模板API[by:wangfeng]", tags = { "WF——管理员病历模板API" })
 @SuppressWarnings("unchecked")
+@ApiIgnore
 public class TemplateInfoAdminController {
 
     @Autowired

+ 43 - 4
icss-service/src/main/java/com/diagbot/web/TemplateInfoController.java

@@ -2,16 +2,21 @@ package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TemplateFolderDTO;
 import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoNormDTO;
 import com.diagbot.dto.TemplateInfoPageAllDTO;
 import com.diagbot.facade.TemplateInfoFacade;
 import com.diagbot.vo.TemplateIdVO;
 import com.diagbot.vo.TemplateInfoAdminPageVO;
 import com.diagbot.vo.TemplateInfoPageVO;
+import com.diagbot.vo.TemplateInfoPersonVO;
 import com.diagbot.vo.TemplateInfoRevampVO;
 import com.diagbot.vo.TemplateInfoVO;
 import com.diagbot.vo.TemplateInfosIdVO;
 import com.diagbot.vo.TemplateInfosVO;
+import com.diagbot.vo.TemplateNormsFindVO;
+import com.diagbot.vo.TemplateNormsParamVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,7 +44,7 @@ public class TemplateInfoController {
     @Autowired
     TemplateInfoFacade templateInfoFacade;
 
-    @ApiOperation(value = "根据医生id、医院id、部门id返回病历模板内容[by:wangfeng]",
+   /* @ApiOperation(value = "根据医生id、医院id、部门id返回病历模板内容[by:wangfeng]",
             notes = "doctorId: 医生id<br>" + "dospitalId:医院编码<br>" + "deptId:部门id<br>" + "type:模式<br>")
     @PostMapping("/getByDoctorIdTemplates")
     @SysLogger("getByDoctorIdTemplates")
@@ -48,7 +53,7 @@ public class TemplateInfoController {
         Map<Integer, List<TemplateInfoDTO>> data = templateInfoFacade.findByDoctorIdTemplates(templateInfoVO);
 
         return RespDTO.onSuc(data);
-    }
+    }*/
 
     @ApiOperation(value = "根据模板id修改模板名称[by:wangfeng]", notes = "id;//模板</br>modeName;"
             + "//模板名</br>doctorId;//医生id</br>hospitalId;//医院id</br>hospitalDeptId;//部门id</br>")
@@ -89,7 +94,7 @@ public class TemplateInfoController {
         return RespDTO.onSuc(res);
     }
 
-    @ApiOperation(value = "分页查询病历模板列表[by:wangfeng]",
+   /* @ApiOperation(value = "分页查询病历模板列表[by:wangfeng]",
             notes = "doctorId: 医生id<br>"
                     + "dospitalId:医院编码<br>"
                     + "deptId:部门id<br>"
@@ -104,7 +109,7 @@ public class TemplateInfoController {
 
         return RespDTO.onSuc(data);
     }
-
+*/
     @ApiOperation(value = "根据模板id获取病历模板内容[by:wangfeng]", notes = "id: 请输入模板id")
     @PostMapping("/getTemplateIdAlls")
     @SysLogger("getTemplateIdAlls")
@@ -112,6 +117,40 @@ public class TemplateInfoController {
 
         TemplateInfoDTO data = templateInfoFacade.getTemplateIdAlls(templateIdVO);
 
+        return RespDTO.onSuc(data);
+    }
+    @ApiOperation(value = "批量更新拼音[by:wangfeng]",
+            notes = "")
+    @PostMapping("/piyinUp")
+    @SysLogger("piyinUp")
+    public RespDTO<Boolean> piyinUp() {
+        return RespDTO.onSuc(templateInfoFacade.piyinUp());
+    }
+    @ApiOperation(value = "个人根据名字和拼音查询标准模板列表[by:wangfeng]")
+    @PostMapping("/findTemplateNorms")
+    @SysLogger("findTemplateNorms")
+    public RespDTO<List<TemplateInfoNormDTO>> findTemplateNorms(@Valid @RequestBody TemplateNormsFindVO templateNormsFindVO) {
+
+        List<TemplateInfoNormDTO> data = templateInfoFacade.findTemplateNorm(templateNormsFindVO);
+
+        return RespDTO.onSuc(data);
+    }
+    @ApiOperation(value = "获取个人模板列表[by:wangfeng]")
+    @PostMapping("/getTemplateAlls")
+    @SysLogger("getTemplateAlls")
+    public RespDTO<TemplateInfoPageAllDTO> getTemplateAlls(@Valid @RequestBody TemplateInfoAdminPageVO templateInfoAdminPageVO) {
+
+        TemplateInfoPageAllDTO data = templateInfoFacade.getTemplateAll(templateInfoAdminPageVO);
+
+        return RespDTO.onSuc(data);
+    }
+    @ApiOperation(value = "查询标准模板列表[by:wangfeng]")
+    @PostMapping("/getTemplateNorms")
+    @SysLogger("getTemplateNorms")
+    public RespDTO<List<TemplateFolderDTO>> getTemplateNorms() {
+
+        List<TemplateFolderDTO> data = templateInfoFacade.getTemplateNorm();
+
         return RespDTO.onSuc(data);
     }
 }

+ 103 - 0
icss-service/src/main/java/com/diagbot/web/TemplateNormController.java

@@ -0,0 +1,103 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TemplateFolderDTO;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoNormDTO;
+import com.diagbot.facade.TemplateNormFacade;
+import com.diagbot.vo.TemplateIdVO;
+import com.diagbot.vo.TemplateNormUpVO;
+import com.diagbot.vo.TemplateNormsFindVO;
+import com.diagbot.vo.TemplateNormsIdsVO;
+import com.diagbot.vo.TemplateNormsParamVO;
+import com.diagbot.vo.TemplateNormsVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-01-10 14:21
+ */
+@RestController
+@RequestMapping("/templateAdmin")
+@Api(value = "管理员标准模板API[by:wangfeng]", tags = { "WF——管理员标准模板API" })
+@SuppressWarnings("unchecked")
+public class TemplateNormController {
+
+    @Autowired
+    TemplateNormFacade templateNormFacade;
+
+    @ApiOperation(value = "根据模板id修改模板名称和模板名首拼及文件目录[by:wangfeng]")
+    @PostMapping("/updateTemplateNorms")
+    @SysLogger("updateTemplateNorms")
+    @Transactional
+    public RespDTO<Boolean> updateTemplateNorms(@Valid @RequestBody TemplateNormUpVO templateNormUpVO) {
+
+        boolean res = templateNormFacade.updateTemplateNorm(templateNormUpVO);
+
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "保存病历模板[by:wangfeng]")
+    @PostMapping("/saveTemplateNorms")
+    @SysLogger("saveTemplateNorms")
+    @Transactional
+    public RespDTO<Boolean> saveTemplateNorms(@Valid @RequestBody TemplateNormsVO templateNormsVO) {
+
+        boolean res = templateNormFacade.saveTemplateNorm(templateNormsVO);
+
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "根据模板id批量删除病历模板[by:wangfeng]", notes = "ids: 模板ids<br>'ids':'1,2,3,4,5,6'")
+    @PostMapping("/cancelTemplateNorms")
+    @SysLogger("cancelTemplateNorms")
+    @Transactional
+    public RespDTO<Boolean> cancelTemplateNorms(@Valid @RequestBody TemplateNormsIdsVO TemplateNormsIdsVO) {
+
+        boolean res = templateNormFacade.cancelTemplateInfo(TemplateNormsIdsVO);
+
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "查询标准模板列表[by:wangfeng]")
+    @PostMapping("/getTemplateNorms")
+    @SysLogger("getTemplateNorms")
+    public RespDTO<List<TemplateFolderDTO>> getTemplateNorms() {
+
+        List<TemplateFolderDTO> data = templateNormFacade.getTemplateNorm();
+
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据模板id获取病历模板内容[by:wangfeng]", notes = "id: 请输入模板id")
+    @PostMapping("/getTemplateIdDatas")
+    @SysLogger("getTemplateIdDatas")
+    public RespDTO<TemplateInfoDTO> getTemplateIdDatas(@Valid @RequestBody TemplateIdVO templateIdVO) {
+
+        TemplateInfoDTO data = templateNormFacade.getTemplateIdData(templateIdVO);
+
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据名字和拼音查询标准模板列表[by:wangfeng]")
+    @PostMapping("/findTemplateNorms")
+    @SysLogger("findTemplateNorms")
+    public RespDTO<List<TemplateInfoNormDTO>> findTemplateNorms(@Valid @RequestBody TemplateNormsFindVO templateNormsFindVO) {
+
+        List<TemplateInfoNormDTO> data = templateNormFacade.findTemplateNorm(templateNormsFindVO);
+
+        return RespDTO.onSuc(data);
+    }
+}

+ 38 - 0
icss-service/src/main/java/com/diagbot/web/TemplateQuoteController.java

@@ -0,0 +1,38 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.TemplateQuoteFacade;
+import com.diagbot.vo.TemplateQuoteVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description: 模板引用
+ * @author: gaodm
+ * @time: 2020/1/13 13:28
+ */
+@RestController
+@RequestMapping("/templateQuote")
+@Api(value = "模板引用API[by:gaodm]", tags = { "模板引用API" })
+@SuppressWarnings("unchecked")
+public class TemplateQuoteController {
+    @Autowired
+    private TemplateQuoteFacade templateQuoteFacade;
+
+
+    @ApiOperation(value = "添加模板引用[by:gaodm]")
+    @PostMapping("/addTemplateQuote")
+    @SysLogger("addTemplateQuote")
+    @Transactional
+    public RespDTO<Boolean> addTemplateQuote(@RequestBody @Validated TemplateQuoteVO templateQuoteVO) {
+        return RespDTO.onSuc(templateQuoteFacade.addTemplateQuote(templateQuoteVO));
+    }
+}

+ 26 - 0
icss-service/src/main/resources/mapper/FolderMappingMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.FolderMappingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.FolderMapping">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="template_id" property="templateId" />
+        <result column="folder_id" property="folderId" />
+        <result column="order_no" property="orderNo" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getMaxOrderNo" resultType="Long">
+        SELECT IFNULL(MAX(order_no)+1, 0) FROM icss_folder_mapping WHERE is_deleted ="N"
+        <if test="folderId != null ">
+           AND folder_id = #{folderId}
+        </if>
+
+    </select>
+</mapper>

+ 29 - 0
icss-service/src/main/resources/mapper/TemplateFolderMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TemplateFolderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateFolder">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="name" property="name" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="doctor_id" property="doctorId" />
+        <result column="template_type" property="templateType" />
+        <result column="order_no" property="orderNo" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getMaxNo" resultType="Integer">
+     SELECT MAX(order_no)+1 FROM icss_template_folder WHERE is_deleted ="N"
+        <if test="hospitald != null ">
+      AND hospital_id = #{hospitald}
+        </if>
+      AND template_type = 2
+      and order_no != 99999
+    </select>
+</mapper>

+ 160 - 99
icss-service/src/main/resources/mapper/TemplateInfoMapper.xml

@@ -2,107 +2,168 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.diagbot.mapper.TemplateInfoMapper">
 
-	<!-- 通用查询映射结果 -->
-	<resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateInfo">
-		<id column="id" property="id" />
-		<result column="is_deleted" property="isDeleted" />
-		<result column="gmt_create" property="gmtCreate" />
-		<result column="gmt_modified" property="gmtModified" />
-		<result column="creator" property="creator" />
-		<result column="modifier" property="modifier" />
-		<result column="name" property="name" />
-		<result column="doctor_id" property="doctorId" />
-		<result column="hospital_dept_id" property="hospitalDeptId" />
-		<result column="hospital_id" property="hospitalId" />
-		<result column="sex" property="sex" />
-		<result column="type" property="type" />
-		<result column="preview" property="preview" />
-		<result column="data_json" property="dataJson" />
-	<result column="template_type" property="templateType" />
-		<result column="remark" property="remark" />
-	</resultMap>
-	<!--根据医生id查询该医生保存的病历模板 -->
-	<select id="findByDoctorIdTemplate" resultType="com.diagbot.dto.TemplateInfoDTO">
-		SELECT
-		id AS id,
-		gmt_create AS gmtCreate,
-		creator AS creator,
-		NAME AS
-		modeName,
-		doctor_id AS doctorId,
-		hospital_id AS hospitalId,
-		hospital_dept_id As hospitalDeptId,
-		TYPE AS modeType,
-		preview AS
-		preview,
-		data_json AS dataJson,
-		remark AS remark
-		FROM
-		icss_template_info WHERE is_deleted = "N"
-		<if test="id != null and id != ''">
-			and id = #{id}
-		</if>
-		<if test="name != null and name != ''">
-			and name = #{name}
-		</if>
-		<if test="hospitalDeptId != null and hospitalDeptId != ''">
-			and hospital_dept_id = #{hospitalDeptId}
-		</if>
-		<if test="doctorId != null and doctorId != ''">
-			and doctor_id = #{doctorId}
-		</if>
-		<if test="hospitalId != null and hospitalId != ''">
-			and hospital_id = #{hospitalId}
-		</if>
-		<if test="type != null and type != ''">
-			and type = #{type}
-		</if>
-		ORDER BY gmt_create DESC
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateInfo">
+        <id column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="name" property="name"/>
+        <result column="spell" property="spell"/>
+        <result column="doctor_id" property="doctorId"/>
+        <result column="hospital_dept_id" property="hospitalDeptId"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="sex" property="sex"/>
+        <result column="type" property="type"/>
+        <result column="preview" property="preview"/>
+        <result column="data_json" property="dataJson"/>
+        <result column="template_type" property="templateType"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+    <!--根据医生id查询该医生保存的病历模板 -->
+    <select id="findByDoctorIdTemplate" resultType="com.diagbot.dto.TemplateInfoDTO">
+        SELECT
+        id AS id,
+        gmt_create AS gmtCreate,
+        creator AS creator,
+        NAME AS
+        modeName,
+        doctor_id AS doctorId,
+        hospital_id AS hospitalId,
+        hospital_dept_id As hospitalDeptId,
+        TYPE AS modeType,
+        preview AS
+        preview,
+        data_json AS dataJson,
+        remark AS remark
+        FROM
+        icss_template_info WHERE is_deleted = "N"
+        <if test="id != null and id != ''">
+            and id = #{id}
+        </if>
+        <if test="name != null and name != ''">
+            and name = #{name}
+        </if>
+        <if test="hospitalDeptId != null and hospitalDeptId != ''">
+            and hospital_dept_id = #{hospitalDeptId}
+        </if>
+        <if test="doctorId != null and doctorId != ''">
+            and doctor_id = #{doctorId}
+        </if>
+        <if test="hospitalId != null and hospitalId != ''">
+            and hospital_id = #{hospitalId}
+        </if>
+        <if test="type != null and type != ''">
+            and type = #{type}
+        </if>
+        ORDER BY gmt_create DESC
 
-	</select>
-	<select id="getTemplatePages" resultType="com.diagbot.dto.TemplateInfoPageDTO">
+    </select>
+    <select id="getTemplatePages" resultType="com.diagbot.dto.TemplateInfoPageDTO">
+        SELECT
+        id AS id,
+        gmt_create AS gmtCreate,
+        creator AS creator,
+        NAME AS
+        name,
+        spell as spell,
+        doctor_id AS doctorId,
+        hospital_id AS hospitalId,
+        hospital_dept_id
+        As hospitalDeptId,
+        TYPE AS type,
+        sex AS sex,
+        preview AS preview,
+        template_type AS templateType,
+        remark AS
+        remark
+        FROM
+        icss_template_info WHERE is_deleted = "N"
+        <if test="hospitalDeptId != null ">
+            and hospital_dept_id = #{hospitalDeptId}
+        </if>
+        <if test="doctorId != null ">
+            and doctor_id = #{doctorId}
+        </if>
+        <if test="hospitalId != null">
+            and hospital_id = #{hospitalId}
+        </if>
+        <if test="templateType != null">
+            and template_type = #{templateType}
+        </if>
+        <if test="type != null and type != ''">
+            and type = #{type}
+        </if>
+        <if test="name != null and name != ''">
+            AND  CONCAT(IFNULL(UPPER(TRIM(name)),''),IFNULL(UPPER(TRIM(spell)),''))
+             LIKE CONCAT('%', UPPER(TRIM(#{name})), '%')
+        </if>
+        and sex in
+        <foreach collection="sex" item="sexNew" open="(" close=")"
+                 separator=",">
+            #{sexNew}
+        </foreach>
+        ORDER BY gmt_create DESC
+
+    </select>
+    <select id="getStandardTemplate" resultType="com.diagbot.dto.TemplateInfoNormDTO">
+        SELECT
+        a.id AS id,
+        a.gmt_create AS gmtCreate,
+        a.creator AS creator,
+        a.NAME AS NAME,
+        a.doctor_id AS doctorId,
+        a.hospital_id AS hospitalId,
+        a.hospital_dept_id AS hospitalDeptId,
+        a.TYPE AS TYPE,
+        a.sex AS sex,
+        a.preview AS preview,
+        a.spell AS spell,
+        a.template_type AS templateType,
+        a.remark AS remark ,
+        b.folder_id AS folderId,
+        b.order_no AS orderNo,
+        b.id AS folderMappingId
+        FROM
+        icss_template_info a
+        JOIN icss_folder_mapping b
+        ON a.id = b.template_id
+        WHERE a.is_deleted = "N"
+        AND b.is_deleted = "N"
+        AND template_type = 2
+        <if test="hospitalId != null ">
+            AND hospital_id = #{hospitalId}
+        </if>
+        ORDER BY b.folder_id,
+        b.order_no ASC ;
+
+    </select>
+	<select id="findStandardTemplate" resultType="com.diagbot.dto.TemplateInfoNormDTO">
 		SELECT
-		id AS id,
-		gmt_create AS gmtCreate,
-		creator AS creator,
-		NAME AS
-		name,
-		doctor_id AS doctorId,
-		hospital_id AS hospitalId,
-		hospital_dept_id
-		As hospitalDeptId,
-		TYPE AS type,
-		sex AS sex,
-		preview AS preview,
-		template_type AS templateType,
-		remark AS
-		remark
-		FROM
-		icss_template_info WHERE is_deleted = "N"
-		<if test="hospitalDeptId != null ">
-			and hospital_dept_id = #{hospitalDeptId}
-		</if>
-		<if test="doctorId != null ">
-			and doctor_id = #{doctorId}
-		</if>
-		<if test="hospitalId != null">
-			and hospital_id = #{hospitalId}
+        a.id AS id,
+        a.gmt_create AS gmtCreate,
+        a.creator AS creator,
+        a.NAME AS NAME,
+        a.doctor_id AS doctorId,
+        a.hospital_id AS hospitalId,
+        a.hospital_dept_id AS hospitalDeptId,
+        a.TYPE AS TYPE,
+        a.sex AS sex,
+        a.preview AS preview,
+        a.spell AS spell,
+        a.template_type AS templateType,
+        a.remark AS remark
+		 FROM
+		icss_template_info a
+		WHERE
+		a.is_deleted ="N"
+		<if test="templateType != null ">
+		AND a.template_type= #{templateType}
 		</if>
-		<if test="templateType != null">
-		and template_type = #{templateType}
-		</if>
-		<if test="type != null and type != ''">
-			and type = #{type}
-		</if>
-		<if test="name != null and name != ''">
-			and UPPER(TRIM(name)) like concat('%',UPPER(TRIM(#{name})),'%')
-		</if>
-		and sex in
-		<foreach collection="sex" item="sexNew" open="(" close=")"
-			separator=",">
-			#{sexNew}
-		</foreach>
-		ORDER BY gmt_create DESC
-
+		AND
+		CONCAT(IFNULL(UPPER(a.NAME),''),IFNULL(UPPER(a.spell),''))
+		LIKE CONCAT('%', UPPER(trim(#{name})), '%')
 	</select>
 </mapper>

+ 18 - 0
icss-service/src/main/resources/mapper/TemplateQuoteMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TemplateQuoteMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateQuote">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="template_id" property="templateId" />
+        <result column="doctor_id" property="doctorId" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
icss-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
         strategy.setTablePrefix(new String[] { "icss_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "icss_inquiry_drug","icss_inquiry_scale" }); // 需要生成的表
+        strategy.setInclude(new String[] { "icss_template_folder","icss_folder_mapping","icss_template_classify","icss_classify_mapping" }); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);

+ 1 - 0
prec-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -29,6 +29,7 @@ public class QuestionDTO {
     private String description; // 客户端界面描述
     private Integer specFlag;//特殊标记(0:没有标记,1:拼接到主诉)
     private Integer required;//必填(0:不必填,1:必填)
+    private String exclusionDetail; //互斥选项(如1,2|3,4(1,2互斥,3,4互斥))
     private String explains;//详细阐述
     private Integer exclusionType; //互斥类型
     private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表

+ 5 - 0
prec-service/src/main/java/com/diagbot/entity/QuestionInfo.java

@@ -112,6 +112,11 @@ public class QuestionInfo implements Serializable {
      */
     private String flag;
 
+    /**
+     * 互斥选项(如1,2|3,4(1,2互斥,3,4互斥))
+     */
+    private String exclusionDetail;
+
     /**
      * 备注
      */

+ 1 - 0
prec-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -20,6 +20,7 @@
         <result column="url" property="url" />
         <result column="spec_flag" property="specFlag" />
         <result column="required" property="required" />
+        <result column="exclusion_detail" property="exclusionDetail" />
         <result column="explains" property="explains" />
         <result column="remark" property="remark" />
     </resultMap>

+ 1 - 0
precman-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -29,6 +29,7 @@ public class QuestionDTO {
     private String url;
     private Integer specFlag;//特殊标记(0:没有标记,1:拼接到主诉)
     private Integer required;//必填(0:不必填,1:必填)
+    private String exclusionDetail; //互斥选项(如1,2|3,4(1,2互斥,3,4互斥))
     private String explains;//详细阐述
     private String description; // 客户端界面描述
     private Integer exclusionType; //互斥类型

+ 5 - 0
precman-service/src/main/java/com/diagbot/entity/QuestionInfo.java

@@ -126,6 +126,11 @@ public class QuestionInfo implements Serializable {
      */
     private Integer required;
 
+    /**
+     * 互斥选项(如1,2|3,4(1,2互斥,3,4互斥))
+     */
+    private String exclusionDetail;
+
     /**
      * 详细阐述
      */

+ 1 - 0
precman-service/src/main/java/com/diagbot/entity/wrapper/QuestionWrapper.java

@@ -35,6 +35,7 @@ public class QuestionWrapper implements Serializable {
     private String url; //图片显示地址
     private Integer specFlag; //特殊标记(0:没有标记,1:拼接到主诉)
     private Integer required; //必填(0:不必填,1:必填)
+    private String exclusionDetail; //互斥选项(如1,2|3,4(1,2互斥,3,4互斥))
     private String explains; //必填(0:不必填,1:必填)
     private String description; //患者界面描述
     private String flag; //类型标记

+ 1 - 0
precman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -23,6 +23,7 @@
         <result column="label_suffix" property="labelSuffix" />
         <result column="url" property="url" />
         <result column="spec_flag" property="specFlag" />
+        <result column="exclusion_detail" property="exclusionDetail" />
         <result column="required" property="required" />
         <result column="explains" property="explains" />
         <result column="description" property="description" />

+ 45 - 10
tran-service/src/main/java/com/diagbot/facade/DoctorInfoFacade.java

@@ -1,18 +1,24 @@
 package com.diagbot.facade;
 
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.DoctorInfoDTO;
 import com.diagbot.dto.DoctorInfoFindDTO;
+import com.diagbot.entity.DoctorInfo;
+import com.diagbot.entity.SysSet;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.SysTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.DoctorInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.DoctorInfoVO;
 import com.diagbot.vo.HospitalCodeSetVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import com.diagbot.dto.DoctorInfoDTO;
-import com.diagbot.entity.DoctorInfo;
-import com.diagbot.service.impl.DoctorInfoServiceImpl;
-import com.diagbot.vo.DoctorInfoVO;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -21,6 +27,8 @@ import com.diagbot.vo.DoctorInfoVO;
  */
 @Component
 public class DoctorInfoFacade extends DoctorInfoServiceImpl {
+    @Autowired
+    private SysSetFacade sysSetFacade;
 
     /**
      * 获取医生信息
@@ -32,14 +40,15 @@ public class DoctorInfoFacade extends DoctorInfoServiceImpl {
         List<DoctorInfoDTO> doctorInfoDTOList = this.getDoctorInfos(doctorInfoVo.getDoctorCode(), doctorInfoVo.getHosptialCode(), doctorInfoVo.getDeptCode());
         return doctorInfoDTOList;
     }
-    
+
     /**
      * 根据ids获取医生信息map
+     *
      * @param ids 医生ids
      * @return 医生信息
      */
     public Map<Long, DoctorInfo> doctorInfoMapByIds(List<Long> ids) {
-    	Map<Long, DoctorInfo> doctorInfoMap
+        Map<Long, DoctorInfo> doctorInfoMap
                 = this.listByIds(ids).stream()
                 .filter(i -> i.getIsDeleted().equals(IsDeleteEnum.N.getKey()))
                 .collect(Collectors.toMap(DoctorInfo::getId, i -> i));
@@ -49,4 +58,30 @@ public class DoctorInfoFacade extends DoctorInfoServiceImpl {
     public DoctorInfoFindDTO findDoctorInfo(HospitalCodeSetVO hospitalCodeSetVO) {
         return this.baseMapper.findDoctorInfo(hospitalCodeSetVO);
     }
+
+
+    public DoctorInfoDTO getDoctorInfoById(Long id) {
+        DoctorInfo doctorInfo = this.getById(id);
+        if (null == doctorInfo
+                || doctorInfo.getIsDeleted().equals(IsDeleteEnum.Y.getKey())) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医生不存在!");
+        }
+
+        if (doctorInfo.getHospitalCode().equals("LT")) {
+            QueryWrapper<SysSet> sysSetInfo = new QueryWrapper<>();
+            sysSetInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
+            sysSetInfo.eq("hospital_code", doctorInfo.getHospitalCode());
+            sysSetInfo.eq("code", "template_admin");
+            sysSetInfo.eq("sys_type", SysTypeEnum.ICSS_SERVICE.getKey());
+            sysSetInfo.apply("find_in_set({0}, value)", doctorInfo.getCode());
+            if (sysSetFacade.count(sysSetInfo) > 0) {
+                throw new CommonException(CommonErrorCode.NOPERMISSION_ERROR,
+                        "该人员为管理员无需记录引用信息!");
+            }
+        }
+
+        DoctorInfoDTO doctorInfoDTO = new DoctorInfoDTO();
+        BeanUtil.copyProperties(doctorInfo, doctorInfoDTO);
+        return doctorInfoDTO;
+    }
 }

+ 3 - 0
tran-service/src/main/java/com/diagbot/facade/SysSetFacade.java

@@ -189,6 +189,9 @@ public class SysSetFacade extends SysSetServiceImpl {
         if (data == null) {
             throw new CommonException(CommonErrorCode.RPC_ERROR, "该用户不存在");
         }
+        if (!"LT".equals(data.getHospitalCode())){
+            throw new CommonException(CommonErrorCode.RPC_ERROR, "非法管理员用户");
+        }
         QueryWrapper<SysSet> sysSetInfo = new QueryWrapper<>();
         sysSetInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
         sysSetInfo.eq("hospital_code", data.getHospitalCode());

+ 8 - 0
tran-service/src/main/java/com/diagbot/web/DoctorInfoController.java

@@ -60,4 +60,12 @@ public class DoctorInfoController {
         Map<Long, DoctorInfo> result = doctorInfoFacade.doctorInfoMapByIds(ids);
         return RespDTO.onSuc(result);
     }
+
+    @PostMapping(value = "/doctorInfoById")
+    @SysLogger("doctorInfoById")
+    @ApiOperation(value = "根据id获取医生信息[by:gaodm]")
+    @ApiIgnore
+    RespDTO<DoctorInfoDTO> getDoctorInfoById(@RequestBody Long id) {
+        return RespDTO.onSuc(doctorInfoFacade.getDoctorInfoById(id));
+    }
 }