ソースを参照

Merge branch 'dev/icss' into dev/icssNCD

# Conflicts:
#	icss-service/src/main/java/com/diagbot/dto/QuestionDTO.java
gaodm 6 年 前
コミット
e5fb636100
52 ファイル変更429 行追加97 行削除
  1. 1 0
      icss-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  2. 5 0
      icss-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  3. 4 0
      icss-service/src/main/java/com/diagbot/facade/FeatureFacade.java
  4. 15 1
      icss-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  5. 11 0
      icss-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  6. 1 1
      icss-service/src/main/java/com/diagbot/vo/QuestionUsualVO.java
  7. 4 0
      icss-service/src/main/java/com/diagbot/vo/RetrievalVO.java
  8. 3 1
      icss-service/src/main/java/com/diagbot/web/RetrievalController.java
  9. 3 2
      icss-service/src/main/resources/mapper/QuestionInfoMapper.xml
  10. 18 0
      icss-service/src/main/resources/mapper/RetrievalMapper.xml
  11. 2 2
      icssman-service/src/main/java/com/diagbot/dto/DeptInfoDTO.java
  12. 11 0
      icssman-service/src/main/java/com/diagbot/dto/GetDeptInfoDTO.java
  13. 5 0
      icssman-service/src/main/java/com/diagbot/dto/GetModuleDetailInfoDTO.java
  14. 3 1
      icssman-service/src/main/java/com/diagbot/dto/IntroducePageDTO.java
  15. 1 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  16. 2 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionPageDTO.java
  17. 23 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionTypeDTO.java
  18. 5 0
      icssman-service/src/main/java/com/diagbot/entity/QuestionInfo.java
  19. 1 0
      icssman-service/src/main/java/com/diagbot/entity/wrapper/QuestionWrapper.java
  20. 52 0
      icssman-service/src/main/java/com/diagbot/enums/ModuleTypeEnum.java
  21. 18 7
      icssman-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java
  22. 5 2
      icssman-service/src/main/java/com/diagbot/facade/IntroduceDetailFacade.java
  23. 30 19
      icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  24. 21 9
      icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java
  25. 7 1
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  26. 1 1
      icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java
  27. 2 0
      icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  28. 11 1
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  29. 1 1
      icssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  30. 4 3
      icssman-service/src/main/java/com/diagbot/facade/VitalOrderFacade.java
  31. 2 0
      icssman-service/src/main/java/com/diagbot/service/impl/EnumsDataServiceImpl.java
  32. 2 0
      icssman-service/src/main/java/com/diagbot/vo/AddModuleInfoVO.java
  33. 3 1
      icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalVO.java
  34. 18 0
      icssman-service/src/main/java/com/diagbot/vo/DeptIdVO.java
  35. 2 2
      icssman-service/src/main/java/com/diagbot/vo/DeptVitalVO.java
  36. 4 0
      icssman-service/src/main/java/com/diagbot/vo/GetModuleInfoVO.java
  37. 3 0
      icssman-service/src/main/java/com/diagbot/vo/GetQuestionUsualByDeptVO.java
  38. 18 0
      icssman-service/src/main/java/com/diagbot/vo/IdVO.java
  39. 18 0
      icssman-service/src/main/java/com/diagbot/vo/IntroduceIdVO.java
  40. 14 0
      icssman-service/src/main/java/com/diagbot/vo/ModuleGetQuestionInfoVO.java
  41. 2 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionUsualVO.java
  42. 18 0
      icssman-service/src/main/java/com/diagbot/vo/VitalIdVO.java
  43. 7 7
      icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java
  44. 1 0
      icssman-service/src/main/java/com/diagbot/web/DictionaryInfoController.java
  45. 10 9
      icssman-service/src/main/java/com/diagbot/web/IntroduceDetailController.java
  46. 6 6
      icssman-service/src/main/java/com/diagbot/web/IntroduceInfoController.java
  47. 7 5
      icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java
  48. 5 5
      icssman-service/src/main/java/com/diagbot/web/VitalOrderController.java
  49. 4 2
      icssman-service/src/main/resources/mapper/DeptInfoMapper.xml
  50. 1 0
      icssman-service/src/main/resources/mapper/DeptVitalMapper.xml
  51. 13 4
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml
  52. 1 4
      icssman-service/src/main/resources/mapper/QuestionUsualMapper.xml

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

@@ -41,5 +41,6 @@ public class QuestionDTO {
     private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
     private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
     private String uniqueName; //隐藏名称
+    private String formulaCode;     //公式编码
     private String remark;//备注
 }

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

@@ -115,6 +115,11 @@ public class QuestionInfo implements Serializable {
      */
     private String showAdd;
 
+    /**
+     * 公式编码
+     */
+    private String formulaCode;
+
     /**
      * 是否显示 i
      */

+ 4 - 0
icss-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -9,6 +9,7 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.ListUtil;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -47,6 +48,9 @@ public class FeatureFacade {
                 symptomNameList.add(symptomFeature.get("feature_name").toString());
             }
         }
+        if (!ListUtil.isNotEmpty(symptomFeatureList)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到特征词");
+        }
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
                 in("tag_name", symptomNameList).

+ 15 - 1
icss-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -1,8 +1,13 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.QuestionUsualDTO;
+import com.diagbot.entity.DeptInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.QuestionUsualServiceImpl;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.QuestionUsualVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -14,7 +19,8 @@ import java.util.List;
  */
 @Component
 public class QuestionUsualFacade extends QuestionUsualServiceImpl {
-
+    @Autowired
+    DeptInfoFacade deptInfoFacade;
 
     /**
      * 获取常用标签
@@ -24,6 +30,14 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
      */
     public List<QuestionUsualDTO> getQuestionUsual(QuestionUsualVO questionUsualVO) {
         List<QuestionUsualDTO> questionUsualDTOList = this.getQuestionUsualName(questionUsualVO);
+        if(ListUtil.isEmpty(questionUsualDTOList)){
+            QueryWrapper<DeptInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("name","全科");
+            DeptInfo deptInfo = deptInfoFacade.getOne(queryWrapper);
+            questionUsualVO.setDeptId(deptInfo.getId());
+            questionUsualDTOList = this.getQuestionUsualName(questionUsualVO);
+        }
         return questionUsualDTOList;
     }
 }

+ 11 - 0
icss-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.service.impl.RetrievalServiceImpl;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.RetrievalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -35,6 +36,16 @@ public class RetrievalFacade extends RetrievalServiceImpl {
         if (retrievalVO.getInputStr() == null || retrievalVO.getInputStr() == "") {
             retrievalVO.setInputStr(" ");
         }
+        //过滤传来的空值
+        if(ListUtil.isNotEmpty(retrievalVO.getInputIds())){
+            List<Long> questionIds = new ArrayList<>();
+            for (Long questionId:retrievalVO.getInputIds()) {
+                if (null != questionId){
+                    questionIds.add(questionId);
+                }
+            }
+            retrievalVO.setInputIds(questionIds);
+        }
         //获取同义词标签信息
         List<RetrievalDTO> data = this.getSymptopInfo(retrievalVO);
         List<Long> selfIds = new ArrayList<>();

+ 1 - 1
icss-service/src/main/java/com/diagbot/vo/QuestionUsualVO.java

@@ -15,7 +15,7 @@ import javax.validation.constraints.NotNull;
 public class QuestionUsualVO {
 
     @NotNull(message = "请输入科室id")
-    private String deptId;
+    private Long deptId;
     @NotNull(message = "请输入病人年龄")
     private Integer age;
     @NotNull(message = "请输入病人性别")

+ 4 - 0
icss-service/src/main/java/com/diagbot/vo/RetrievalVO.java

@@ -25,4 +25,8 @@ public class RetrievalVO {
     private Integer sexType;
     //需要去重的id
     private List<Long> inputIds;
+    //标签标识
+    private Integer tagType;
+    //元素类型
+    private Integer itemType;
 }

+ 3 - 1
icss-service/src/main/java/com/diagbot/web/RetrievalController.java

@@ -38,7 +38,9 @@ public class RetrievalController {
                     "age:年龄,必填<br>" +
                     "inputStr:检索内容,必填<br>" +
                     "sexType:性别,必填<br>" +
-                    "inputIds:需要去重的id")
+                    "inputIds:需要去重的id<br>" +
+                    "tagType: 标签标识<br>" +
+                    "itemType: 元素类型<br>")
     @PostMapping("/getTagInfos")
     @SysLogger("getTagInfos")
     public RespDTO<List<RetrievalDTO>> getTagInfos(@Valid @RequestBody RetrievalVO retrievalVO) {

+ 3 - 2
icss-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -24,13 +24,14 @@
         <result column="show_add" property="showAdd" />
         <result column="show_info" property="showInfo" />
         <result column="joint" property="joint" />
+        <result column="formula_code" property="formulaCode" />
         <result column="remark" property="remark" />
     </resultMap>
 
     <select id="getByParam" parameterType="java.util.Map" resultMap="BaseResultMap">
         select * from icss_question_info  where is_deleted = 'N'
         and id = #{id}
-        <if test="sexType != null and sexType != ''">
+        <if test="sexType != null and sexType != 3 and sexType != ''">
             and sex_type in (3, #{sexType})
         </if>
         <if test="age != null and age != ''">
@@ -51,7 +52,7 @@
                 m.parent_question = #{myId}
             </foreach>
         </if>
-        <if test="sexType != null">
+        <if test="sexType != null and sexType != 3 and sexType != ''">
             and t.sex_type in (3, #{sexType})
         </if>
         <if test="age != null">

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

@@ -26,6 +26,12 @@
             <![CDATA[ and c.age_begin <= #{age} ]]>
             <![CDATA[ and c.age_end >= #{age} ]]>
         </if>
+        <if test="tagType != null and tagType != ''">
+            <![CDATA[ and c.tag_type = #{tagType} ]]>
+        </if>
+        <if test="itemType != null">
+            <![CDATA[ and c.item_type = #{itemType} ]]>
+        </if>
         <if test="sexType == 3">
             and c.sex_type in ('1','2','3')
         </if>
@@ -49,6 +55,12 @@
             <![CDATA[ and c.age_begin <= #{age} ]]>
             <![CDATA[ and c.age_end >= #{age} ]]>
         </if>
+        <if test="tagType != null and tagType != ''">
+            <![CDATA[ and c.tag_type = #{tagType} ]]>
+        </if>
+        <if test="itemType != null">
+            <![CDATA[ and c.item_type = #{itemType} ]]>
+        </if>
         <if test="sexType == 3">
             and c.sex_type in ('1','2','3')
         </if>
@@ -72,6 +84,12 @@
             <![CDATA[ and c.age_begin <= #{age} ]]>
             <![CDATA[ and c.age_end >= #{age} ]]>
         </if>
+        <if test="tagType != null and tagType != ''">
+            <![CDATA[ and c.tag_type = #{tagType} ]]>
+        </if>
+        <if test="itemType != null">
+            <![CDATA[ and c.item_type = #{itemType} ]]>
+        </if>
         <if test="sexType == 3">
             and c.sex_type in ('1','2','3')
         </if>

+ 2 - 2
icssman-service/src/main/java/com/diagbot/dto/DeptInfoDTO.java

@@ -16,9 +16,9 @@ import java.util.List;
 public class DeptInfoDTO extends DeptInfo {
 
     /**
-     *  归属类型
+     * 归属类型和类型名称
      */
-    private List<Integer> type;
+    private List<QuestionTypeDTO> typeDTOList;
 
     /**
      * 常用标签

+ 11 - 0
icssman-service/src/main/java/com/diagbot/dto/GetDeptInfoDTO.java

@@ -17,4 +17,15 @@ public class GetDeptInfoDTO extends DeptInfo {
      * 操作人姓名
      */
     private String userName;
+
+    /**
+     * 归属类型
+     */
+    private Integer type;
+
+    /**
+     * 归属类型名称
+     */
+    private String typeName;
+
 }

+ 5 - 0
icssman-service/src/main/java/com/diagbot/dto/GetModuleDetailInfoDTO.java

@@ -32,6 +32,11 @@ public class GetModuleDetailInfoDTO {
      */
     private String tagName;
 
+    /**
+     * 标签类型
+     */
+    private Integer tagType;
+
     /**
      * 关联模板
      */

+ 3 - 1
icssman-service/src/main/java/com/diagbot/dto/IntroducePageDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 
+import com.diagbot.entity.IntroduceDetail;
 import com.diagbot.entity.IntroduceInfo;
 import lombok.Getter;
 import lombok.Setter;
@@ -20,5 +21,6 @@ public class IntroducePageDTO extends IntroduceInfo {
     private Date gmtOperate;
     private String tagName;
     private List<QuestionShortDTO> questionList;
-    private List<QuestionShortDTO> unRelatedQuestionList;
+    //private List<QuestionShortDTO> unRelatedQuestionList;
+    private List<IntroduceDetail> details;
 }

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

@@ -38,6 +38,7 @@ public class QuestionDTO {
     private Integer copyType;//是否复制
     private Integer showInfo; //是否显示i
     private String joint = "";     //标签后的连接符
+    private String formulaCode; //公式编码
     private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
     private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
     private String remark;//备注

+ 2 - 0
icssman-service/src/main/java/com/diagbot/dto/QuestionPageDTO.java

@@ -158,6 +158,8 @@ public class QuestionPageDTO implements Serializable {
      */
     private String showAdd;
 
+    private String formulaCode; //公式编码
+
     /**
      * 备注
      */

+ 23 - 0
icssman-service/src/main/java/com/diagbot/dto/QuestionTypeDTO.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/3/12 11:29
+ */
+@Getter
+@Setter
+public class QuestionTypeDTO {
+    /**
+     * 标签类型
+     */
+    private Integer type;
+
+    /**
+     * 标签名称
+     */
+    private String typeName;
+}

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

@@ -155,6 +155,11 @@ public class QuestionInfo implements Serializable {
      */
     private String joint;
 
+    /**
+     * 公式编码
+     */
+    private String formulaCode;
+
     /**
      * 备注
      */

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

@@ -41,6 +41,7 @@ public class QuestionWrapper implements Serializable {
     private String showAdd; //复制文字
     private Integer showInfo; //是否显示i
     private String joint;     //标签连接符
+    private String formulaCode; //公式编码
     private String remark; //备注
     private List<QuestionDetail> questionDetails = new ArrayList<>(); //明细
     private List<QuestionMappingWrapper> questionMappings = new ArrayList<>(); //映射关系

+ 52 - 0
icssman-service/src/main/java/com/diagbot/enums/ModuleTypeEnum.java

@@ -0,0 +1,52 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:标签类型
+ * @Author:zhaops
+ * @time: 2018/11/21 11:39
+ */
+public enum ModuleTypeEnum implements KeyedNamed {
+    ChiefComplaint(1, "主诉模板"),
+    HistoryOfPresentIllness(2, "现病史模板"),
+    HistoryOfPresentIllnessNull(3, "现病史空模板"),
+    OtherHistory(4, "其他史模板"),
+    Nesting(5, "嵌套模板");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    ModuleTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ModuleTypeEnum getEnum(Integer key) {
+        for (ModuleTypeEnum item : ModuleTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        ModuleTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 18 - 7
icssman-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java

@@ -6,6 +6,7 @@ import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.DeptInfoDTO;
 import com.diagbot.dto.GetDeptInfoDTO;
 import com.diagbot.dto.GetQuestionUsualAndTypeDTO;
+import com.diagbot.dto.QuestionTypeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.enums.IsDeleteEnum;
@@ -159,12 +160,13 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
         getQuestionUsualAndTypeVO.setDeptIds(deptIds);
         List<GetQuestionUsualAndTypeDTO> getQuestionUsualAndTypeDTOS = questionUsualFacade.getQuestionUsualByDeptIds(getQuestionUsualAndTypeVO);
         List<GetQuestionUsualAndTypeDTO> questionUsuals = new ArrayList<>();
-        List<Integer> typeList = new ArrayList<>();
         List<DeptInfoDTO> deptInfoDTOS = new ArrayList<>();
+        List<QuestionTypeDTO> questionTypeDTOS = new ArrayList<>();
+        QuestionTypeDTO questionTypeDTO = null;
         //将标签明细放入科室信息中,并排除类型
         for (DeptInfoDTO deptInfoDTO : deptInfoDTOList) {
-            typeList = new ArrayList<>();
             questionUsuals = new ArrayList<>();
+            questionTypeDTOS = new ArrayList<>();
             for (GetQuestionUsualAndTypeDTO getQuestionUsualAndTypeDTO : getQuestionUsualAndTypeDTOS) {
                     if (deptInfoDTO.getId().intValue() == getQuestionUsualAndTypeDTO.getDeptId().intValue()){
                         questionUsuals.add(getQuestionUsualAndTypeDTO);
@@ -175,17 +177,26 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
             deptInfoDTO.getQuestionUsuals().forEach(getQuestionUsualAndTypeDTO -> questionType.add(getQuestionUsualAndTypeDTO.getType()));
             //对类型进行筛选,已经添加过得类型不再显示
             if(!questionType.contains(QuestionTypeEnum.Symptom.getKey())){
-                typeList.add(QuestionTypeEnum.Symptom.getKey());
+                questionTypeDTO = new QuestionTypeDTO();
+                questionTypeDTO.setType(QuestionTypeEnum.Symptom.getKey());
+                questionTypeDTO.setTypeName(QuestionTypeEnum.getName(QuestionTypeEnum.Symptom.getKey()));
+                questionTypeDTOS.add(questionTypeDTO);
             }
             if(!questionType.contains(QuestionTypeEnum.Lis.getKey())){
-                typeList.add(QuestionTypeEnum.Lis.getKey());
+                questionTypeDTO = new QuestionTypeDTO();
+                questionTypeDTO.setType(QuestionTypeEnum.Lis.getKey());
+                questionTypeDTO.setTypeName(QuestionTypeEnum.getName(QuestionTypeEnum.Lis.getKey()));
+                questionTypeDTOS.add(questionTypeDTO);
             }
             if(!questionType.contains(QuestionTypeEnum.Pacs.getKey())){
-                typeList.add(QuestionTypeEnum.Pacs.getKey());
+                questionTypeDTO = new QuestionTypeDTO();
+                questionTypeDTO.setType(QuestionTypeEnum.Pacs.getKey());
+                questionTypeDTO.setTypeName(QuestionTypeEnum.getName(QuestionTypeEnum.Pacs.getKey()));
+                questionTypeDTOS.add(questionTypeDTO);
             }
-            deptInfoDTO.setType(typeList);
+            deptInfoDTO.setTypeDTOList(questionTypeDTOS);
             //对总体类型进行筛选,若该科室已经添加过疾病,化验,复检的常用标签,则该科室不再显示
-            if(ListUtil.isNotEmpty(deptInfoDTO.getType())){
+            if(ListUtil.isNotEmpty(deptInfoDTO.getTypeDTOList())){
                 deptInfoDTOS.add(deptInfoDTO);
             }
         }

+ 5 - 2
icssman-service/src/main/java/com/diagbot/facade/IntroduceDetailFacade.java

@@ -10,6 +10,7 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.IntroduceDetailServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.IdVO;
 import com.diagbot.vo.IntroduceDetailSingleVO;
 import com.diagbot.vo.IntroduceDetailVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -121,10 +123,11 @@ public class IntroduceDetailFacade extends IntroduceDetailServiceImpl {
     /**
      * 批量删除提示信息明细 逻辑删除
      *
-     * @param ids
+     * @param idVOList
      * @return
      */
-    public Boolean deleteRecords(Long[] ids) {
+    public Boolean deleteRecords(List<IdVO> idVOList) {
+        List<Long> ids = idVOList.stream().map(idVO -> idVO.getId()).collect(Collectors.toList());
         UpdateWrapper<IntroduceDetail> introduceDetailUpdateWrapper = new UpdateWrapper<>();
         introduceDetailUpdateWrapper.in("id", ids).
                 eq("is_deleted", IsDeleteEnum.N.getKey()).

+ 30 - 19
icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -19,7 +19,9 @@ import com.diagbot.service.IntroduceMapService;
 import com.diagbot.service.impl.IntroduceInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.IdVO;
 import com.diagbot.vo.IntroduceDetailVO;
 import com.diagbot.vo.IntroduceMapVO;
 import com.diagbot.vo.IntroducePageVO;
@@ -185,10 +187,11 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     /**
      * 批量删除提示信息 逻辑删除
      *
-     * @param ids
+     * @param idVOList
      * @return
      */
-    public Boolean deleteRecords(Long[] ids) {
+    public Boolean deleteRecords(List<IdVO> idVOList) {
+        List<Long> ids = idVOList.stream().map(idVO -> idVO.getId()).collect(Collectors.toList());
         //删除已有映射关系
         UpdateWrapper<IntroduceMap> introduceMapUpdateWrapper = new UpdateWrapper<>();
         introduceMapUpdateWrapper.in("introduce_id", ids).
@@ -273,26 +276,28 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         List<IntroduceMap> introduceMapList = introduceMapFacade.list(introduceMapQueryWrapper);
 
         List<Long> questionIds = introduceMapList.stream().map(introduceMap -> introduceMap.getQuestionId()).collect(Collectors.toList());
-        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
-        questionInfoQueryWrapper.in("id", questionIds).eq("is_deleted", IsDeleteEnum.N.getKey());
-        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
+        if(ListUtil.isNotEmpty(questionIds)) {
+            QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+            questionInfoQueryWrapper.in("id", questionIds).eq("is_deleted", IsDeleteEnum.N.getKey());
+            List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
 
-        List<QuestionShortDTO> questionShortDTOList = Lists.newLinkedList();
-        String tagName = "";
-        for (QuestionInfo questionInfo : questionInfoList) {
-            QuestionShortDTO questionShortDTO = new QuestionShortDTO();
-            BeanUtil.copyProperties(questionInfo, questionShortDTO);
-            questionShortDTOList.add(questionShortDTO);
-            tagName += questionInfo.getTagName() + ",";
-        }
-        if (tagName.endsWith(",")) {
-            tagName = tagName.substring(0, tagName.length() - 1);
+            List<QuestionShortDTO> questionShortDTOList = Lists.newLinkedList();
+            String tagName = "";
+            for (QuestionInfo questionInfo : questionInfoList) {
+                QuestionShortDTO questionShortDTO = new QuestionShortDTO();
+                BeanUtil.copyProperties(questionInfo, questionShortDTO);
+                questionShortDTOList.add(questionShortDTO);
+                tagName += questionInfo.getTagName() + ",";
+            }
+            if (tagName.endsWith(",")) {
+                tagName = tagName.substring(0, tagName.length() - 1);
+            }
+            introducePageDTO.setTagName(tagName);
+            introducePageDTO.setQuestionList(questionShortDTOList);
         }
-        introducePageDTO.setTagName(tagName);
-        introducePageDTO.setQuestionList(questionShortDTOList);
 
         //未关联的标签
-        QueryWrapper<QuestionInfo> unRelatedQuestionWrapper = new QueryWrapper<>();
+        /*QueryWrapper<QuestionInfo> unRelatedQuestionWrapper = new QueryWrapper<>();
         unRelatedQuestionWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("sub_type", 0)
                 .notIn("id", questionIds);
@@ -300,7 +305,13 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
 
         List<QuestionShortDTO> unRelatedQuestionDTOList
                 = BeanUtil.listCopyTo(unRelatedQuestionList, QuestionShortDTO.class);
-        introducePageDTO.setUnRelatedQuestionList(unRelatedQuestionDTOList);
+        introducePageDTO.setUnRelatedQuestionList(unRelatedQuestionDTOList);*/
+
+        //提示信息明细
+        QueryWrapper<IntroduceDetail> introduceDetailQueryWrapper=new QueryWrapper<>();
+        introduceDetailQueryWrapper.eq("is_deleted",IsDeleteEnum.N).eq("introduce_id",id).orderByAsc("order_no");
+        List<IntroduceDetail> introduceDetailList=introduceDetailFacade.list(introduceDetailQueryWrapper);
+        introducePageDTO.setDetails(introduceDetailList);
 
         return introducePageDTO;
     }

+ 21 - 9
icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java

@@ -10,6 +10,7 @@ import com.diagbot.service.ModuleDetailService;
 import com.diagbot.service.QuestionInfoService;
 import com.diagbot.service.impl.ModuleDetailServiceImpl;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddModuleDetailVO;
@@ -20,6 +21,7 @@ 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;
 import java.util.stream.Collectors;
@@ -90,20 +92,23 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("tag_type", TagTypeEnum.T8.getKey())
+                .eq("type", addModuleInfoVO.getTextType())
                 .in("name",textList);
         List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
         //将标签id放入map
-        Map<String,Long> questionIdMap = questionInfoList.stream().collect(Collectors.toMap(QuestionInfo::getTagName,questionInfo -> questionInfo.getId()));
+        Map<String,Long> questionIdMap = new HashMap<>();
+        for (AddModuleDetailVO addModuleDetailVO: addModuleInfoVO.getModelDetils()) {
+            if(StringUtil.isNotEmpty(addModuleDetailVO.getText())){
+                questionIdMap = questionInfoList.stream().collect(Collectors.toMap(QuestionInfo::getTagName,questionInfo -> questionInfo.getId()));
+            }
+        }
         QuestionInfo addquestionInfo = null;
         List<QuestionInfo> addQuestionInfoList = new ArrayList<>();
-        /*for (QuestionInfo questionInfo:questionInfoList) {
-            questionIdMap.put(questionInfo.getTagName(),questionInfo.getId());
-        }*/
         //循环给questionId赋值,如果遇到赋值失败的则是没有questionID,执行添加
         for (AddModuleDetailVO addModuleDetailVO:addModuleInfoVO.getModelDetils()) {
             if (StringUtil.isNotEmpty(addModuleDetailVO.getText())){
                 addModuleDetailVO.setQuestionId(questionIdMap.get(addModuleDetailVO.getText()));
-                if(addModuleDetailVO.getQuestionId() == null){
+                if(addModuleDetailVO.getQuestionId() == null && addModuleDetailVO.getText() != null){
                     addquestionInfo = new QuestionInfo();
                     addquestionInfo.setModifier(userId);
                     addquestionInfo.setCreator(userId);
@@ -112,10 +117,12 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
                     addquestionInfo.setTagType(TagTypeEnum.T8.getKey());
                     addquestionInfo.setTagName(addModuleDetailVO.getText());
                     addquestionInfo.setName(addModuleDetailVO.getText());
-                    addquestionInfo.setType(addModuleInfoVO.getType());
+                    addquestionInfo.setType(addModuleInfoVO.getTextType());
                     addquestionInfo.setSubType(1);
                     addquestionInfo.setName(addModuleDetailVO.getText());
-                    addQuestionInfoList.add(addquestionInfo);
+                    if(!addQuestionInfoList.contains(addquestionInfo)){
+                        addQuestionInfoList.add(addquestionInfo);
+                    }
                 }
             }
         }
@@ -123,10 +130,15 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
         //查询自定义标签的id
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper1 = new QueryWrapper<>();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("type", addModuleInfoVO.getTextType())
                 .eq("tag_type", TagTypeEnum.T8.getKey());
         List<QuestionInfo> questionInfoList1 = questionFacade.list(questionInfoQueryWrapper1);
-        for (QuestionInfo questionInfo:questionInfoList1) {
-            questionIdMap.put(questionInfo.getTagName(),questionInfo.getId());
+        if(ListUtil.isNotEmpty(questionInfoList1)){
+            for (QuestionInfo questionInfo:questionInfoList1) {
+                if(StringUtil.isNotEmpty(questionInfo.getTagName())){
+                    questionIdMap.put(questionInfo.getTagName(),questionInfo.getId());
+                }
+            }
         }
         //二次赋值保证每一个questionId都有值
         ModuleDetail moduleDetail = null;

+ 7 - 1
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -20,6 +20,7 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ModuleInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddModuleInfoVO;
@@ -105,6 +106,7 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         moduleInfo.setModifier(userId);
         moduleInfo.setGmtCreate(now);
         moduleInfo.setGmtModified(now);
+        moduleInfo.setType(addModulInfoVO.getType());
         this.save(moduleInfo);
         Long moduleId = moduleInfo.getId();
         return moduleDetailFacade.saveOrUpdateInfos(addModulInfoVO, moduleId);
@@ -155,6 +157,9 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         if (getModuleInfoVO.getType() != null) {
             moduleInfoQueryWrapper.eq("type", getModuleInfoVO.getType());
         }
+        if(ListUtil.isNotEmpty(getModuleInfoVO.getNoIds())){
+            moduleInfoQueryWrapper.notIn("id", getModuleInfoVO.getNoIds());
+        }
         List<ModuleInfo> moduleInfoList = this.list(moduleInfoQueryWrapper);
         List<Long> moduleIdList = moduleInfoList.stream().map(m -> m.getId()).collect(Collectors.toList());
         //获取模板明细信息
@@ -252,8 +257,9 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
             BeanUtil.copyProperties(moduleDetail, getModuleDetailInfoDTO);
             if (moduleDetail.getQuestionId() != null) {
                 getModuleDetailInfoDTO.setTagName(questionInfoMap.get(moduleDetail.getQuestionId()).getTagName());
+                getModuleDetailInfoDTO.setTagType(questionInfoMap.get(moduleDetail.getQuestionId()).getTagType());
             } else {
-                getModuleDetailInfoDTO.setRelationModuleName(moduleInfoMap.get(moduleDetail.getModuleId()).getName());
+                getModuleDetailInfoDTO.setRelationModuleName(moduleInfoMap.get(moduleDetail.getRelationModule()).getName());
             }
             getModuleDetailInfoDTOList.add(getModuleDetailInfoDTO);
         }

+ 1 - 1
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -358,7 +358,7 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                 .eq("type", questionInfo.getType())
                 .ne("id", questionInfo.getId() == null ? -1 : questionInfo.getId()));
         if (ListUtil.isNotEmpty(questionInfoList)) { //标签type、tagName唯一
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签名称已重复,无法建立");
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签系统名称已重复,无法建立");
         }
         if ("save".equals(param.getSaveOrUpdate())) {
             questionInfo.setCreator(param.getPerson()); //创建人

+ 2 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -9,6 +9,7 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.QuestionUsual;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.QuestionUsualService;
@@ -163,6 +164,7 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
         //将用户信息放入实体
         for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
             getDeptInfoDTO.setUserName(respDTO.data.get(getDeptInfoDTO.getModifier()));
+            getDeptInfoDTO.setTypeName(QuestionTypeEnum.getName(getDeptInfoDTO.getType()));
         }
         return iPage;
     }

+ 11 - 1
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -117,7 +117,17 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     public Boolean addTagRetrieval(AddTagRetrievalVO addTagRetrievalVO) {
         if (addTagRetrievalVO.getItemList().stream().distinct().count() != addTagRetrievalVO.getItemList().size()) {
             throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "同义词中存在重复数据!");
+                    "同义词中存在重复数据("+addTagRetrievalVO.getQuestionName()+")!");
+        }
+        
+        long typeOneCou = addTagRetrievalVO.getItemList().stream().filter(i->i.getRetrievalType()==1).count();
+        if(typeOneCou==0){
+        	throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "本体必须传("+addTagRetrievalVO.getQuestionName()+")!");
+        }
+        if(typeOneCou>1){
+        	throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "本体只能有一个("+addTagRetrievalVO.getQuestionName()+")!");
         }
 
         Date now = DateUtil.now();

+ 1 - 1
icssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java

@@ -187,7 +187,7 @@ public class VersionInfoFacade extends VersionInfoServiceImpl {
         QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
         templateInfoFand.eq("name", versionInfoVO.getName()).eq("is_deleted", IsDeleteEnum.N.getKey());
         VersionInfo dataInfo = getOne(templateInfoFand);
-        if (dataInfo != null) {
+        if (dataInfo != null && !dataInfo.getId().equals(versionInfoVO.getId())) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本号已存在");
         }
         // 3.修改版本信息

+ 4 - 3
icssman-service/src/main/java/com/diagbot/facade/VitalOrderFacade.java

@@ -16,8 +16,8 @@ import com.diagbot.service.impl.VitalOrderServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.VitalIdVO;
 import com.diagbot.vo.VitalOrderVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -171,10 +171,11 @@ public class VitalOrderFacade extends VitalOrderServiceImpl {
     /**
      * 删除排序-批量
      *
-     * @param vitalIds
+     * @param vitalIdVOList
      * @return
      */
-    public Boolean deleteVitalOrders(Long[] vitalIds) {
+    public Boolean deleteVitalOrders(List<VitalIdVO> vitalIdVOList) {
+        List<Long> vitalIds = vitalIdVOList.stream().map(vitalIdVO -> vitalIdVO.getVitalId()).collect(Collectors.toList());
         UpdateWrapper<VitalOrder> vitalOrderUpdateWrapper = new UpdateWrapper<>();
         vitalOrderUpdateWrapper.in("vital_id", vitalIds).
                 eq("is_deleted", IsDeleteEnum.N.getKey()).

+ 2 - 0
icssman-service/src/main/java/com/diagbot/service/impl/EnumsDataServiceImpl.java

@@ -2,6 +2,7 @@ package com.diagbot.service.impl;
 
 import com.diagbot.enums.DisclaimerCodeEnum;
 import com.diagbot.enums.IntroducePositionEnum;
+import com.diagbot.enums.ModuleTypeEnum;
 import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.service.EnumsDataService;
 import com.diagbot.util.EnumEntriesBuilder;
@@ -29,6 +30,7 @@ public class EnumsDataServiceImpl implements EnumsDataService {
                 .addEnums("questionTypeEnum", QuestionTypeEnum.values())
                 .addEnums("introducePositionEnum", IntroducePositionEnum.values())
                 .addEnums("disclaimerCodeEnum", DisclaimerCodeEnum.values())
+                .addEnums("moduleTypeEnum", ModuleTypeEnum.values())
                 .build();
         return enumMap;
     }

+ 2 - 0
icssman-service/src/main/java/com/diagbot/vo/AddModuleInfoVO.java

@@ -18,6 +18,8 @@ public class AddModuleInfoVO {
     private String name;
     @NotNull(message="模板类型")
     private int type;
+    //特殊标签归属类型
+    private Integer textType;
     //标签id
     private List<AddModuleDetailVO> modelDetils;
 }

+ 3 - 1
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalVO.java

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import java.util.List;
 
 import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 
@@ -31,7 +32,8 @@ public class AddTagRetrievalVO {
 	/**
 	 * 标签名称
 	 */
-	@ApiModelProperty(value="标签名称")
+	@ApiModelProperty(value="标签名称",required=true)
+	@NotBlank(message="标签名称必传")
 	private String questionName;
 	
 	@Valid

+ 18 - 0
icssman-service/src/main/java/com/diagbot/vo/DeptIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/11 10:15
+ */
+@Getter
+@Setter
+public class DeptIdVO {
+    @NotNull(message = "请输入科室id")
+    private Long deptId;
+}

+ 2 - 2
icssman-service/src/main/java/com/diagbot/vo/DeptVitalVO.java

@@ -16,6 +16,6 @@ import java.util.List;
 public class DeptVitalVO {
     @NotNull(message = "请输入科室ID")
     private Long deptId;
-    //@NotNull(message = "请输入查体标签ID")
+    @NotNull(message = "请输入查体标签ID")
     private List<DVDetailVO> dvDetailVOList;
-}
+}

+ 4 - 0
icssman-service/src/main/java/com/diagbot/vo/GetModuleInfoVO.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @Description:
  * @author: wangyu
@@ -14,4 +16,6 @@ import lombok.Setter;
 public class GetModuleInfoVO extends Page {
     //模板类型
     private Integer type;
+    //要去重的子模板
+    private List<Long> noIds;
 }

+ 3 - 0
icssman-service/src/main/java/com/diagbot/vo/GetQuestionUsualByDeptVO.java

@@ -15,4 +15,7 @@ import javax.validation.constraints.NotNull;
 public class GetQuestionUsualByDeptVO {
     @NotNull(message = "请输入科室id")
     private Long deptId;
+
+    @NotNull(message = "请输入标签类型")
+    private Integer type;
 }

+ 18 - 0
icssman-service/src/main/java/com/diagbot/vo/IdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/11 9:51
+ */
+@Getter
+@Setter
+public class IdVO {
+    @NotNull(message = "请输入id")
+    private Long id;
+}

+ 18 - 0
icssman-service/src/main/java/com/diagbot/vo/IntroduceIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/11 10:07
+ */
+@Getter
+@Setter
+public class IntroduceIdVO {
+    @NotNull(message = "请输入提示信息id")
+    private Long introduceId;
+}

+ 14 - 0
icssman-service/src/main/java/com/diagbot/vo/ModuleGetQuestionInfoVO.java

@@ -3,6 +3,9 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
 /**
  * @Description:
  * @author: wangyu
@@ -20,4 +23,15 @@ public class ModuleGetQuestionInfoVO {
      * 模板id
      */
     private String moduleId;
+
+    /**
+     * 要去重的id
+     */
+    private List<Long> noIds;
+
+    /**
+     * 标签类型
+     */
+    @NotNull(message="归属类型不能为空")
+    private Integer type;
 }

+ 2 - 0
icssman-service/src/main/java/com/diagbot/vo/QuestionUsualVO.java

@@ -18,4 +18,6 @@ public class QuestionUsualVO {
     private Long deptId;
     @NotNull(message = "请输入症状id")
     private List<Long> questionId;
+    @NotNull(message = "请输入标签类型")
+    private Integer type;
 }

+ 18 - 0
icssman-service/src/main/java/com/diagbot/vo/VitalIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/11 10:01
+ */
+@Getter
+@Setter
+public class VitalIdVO {
+    @NotNull(message = "请输入查体标签id")
+    private Long vitalId;
+}

+ 7 - 7
icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java

@@ -7,6 +7,7 @@ import com.diagbot.dto.DeptShortDTO;
 import com.diagbot.dto.DeptVitalDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.DeptVitalFacade;
+import com.diagbot.vo.DeptIdVO;
 import com.diagbot.vo.DeptVitalPageVO;
 import com.diagbot.vo.DeptVitalVO;
 import io.swagger.annotations.Api;
@@ -16,7 +17,6 @@ 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -67,8 +67,8 @@ public class DeptVitalController {
     @PostMapping("/delAllDeptVitalList")
     @SysLogger("delAllDeptVitalList")
     @Transactional
-    public RespDTO<Boolean> delAllDeptVitalList(@RequestBody DeptVitalVO deptVitalVO) {
-        Boolean data = deptVitalFacade.delAllDeptVitalList(deptVitalVO.getDeptId());
+    public RespDTO<Boolean> delAllDeptVitalList(@RequestBody DeptIdVO deptIdVO) {
+        Boolean data = deptVitalFacade.delAllDeptVitalList(deptIdVO.getDeptId());
         return RespDTO.onSuc(data);
     }
 
@@ -76,8 +76,8 @@ public class DeptVitalController {
             notes = "deptId:科室ID,必填<br>")
     @PostMapping("/getModuleByDeptId")
     @SysLogger("getModuleByDeptId")
-    public RespDTO<DeptVitalDTO> getModuleByDeptId(@RequestBody DeptVitalVO deptVitalVO) {
-        DeptVitalDTO data = deptVitalFacade.getModuleByDeptId(deptVitalVO.getDeptId());
+    public RespDTO<DeptVitalDTO> getModuleByDeptId(@RequestBody DeptIdVO deptIdVO) {
+        DeptVitalDTO data = deptVitalFacade.getModuleByDeptId(deptIdVO.getDeptId());
         return RespDTO.onSuc(data);
     }
 
@@ -110,8 +110,8 @@ public class DeptVitalController {
             notes = "deptId:科室ID,必填<br>")
     @PostMapping("/getDeptShortList_modify")
     @SysLogger("getDeptShortList_modify")
-    public RespDTO<DeptShortDTO> getDeptShortListModify(@RequestBody DeptVitalVO deptVitalVO) {
-        List<DeptShortDTO> data = deptVitalFacade.getDeptShortLisModify(deptVitalVO.getDeptId());
+    public RespDTO<DeptShortDTO> getDeptShortListModify(@RequestBody DeptIdVO deptIdVO) {
+        List<DeptShortDTO> data = deptVitalFacade.getDeptShortLisModify(deptIdVO.getDeptId());
         return RespDTO.onSuc(data);
     }
 }

+ 1 - 0
icssman-service/src/main/java/com/diagbot/web/DictionaryInfoController.java

@@ -26,6 +26,7 @@ import java.util.Map;
  */
 @RequestMapping("/dictionaryInfo")
 @RestController
+@SuppressWarnings("unchecked")
 @Api(value = "字典信息", tags = { "字典信息" })
 public class DictionaryInfoController {
 

+ 10 - 9
icssman-service/src/main/java/com/diagbot/web/IntroduceDetailController.java

@@ -5,7 +5,9 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.IntroduceDetail;
 import com.diagbot.facade.IntroduceDetailFacade;
+import com.diagbot.vo.IdVO;
 import com.diagbot.vo.IntroduceDetailSingleVO;
+import com.diagbot.vo.IntroduceIdVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,7 +15,6 @@ 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -38,8 +39,8 @@ public class IntroduceDetailController {
             notes = "introduceId: 提示信息id,必填")
     @PostMapping("/getByIntroduceId")
     @SysLogger("getByIntroduceId")
-    public RespDTO<List<IntroduceDetail>> getByIntroduceId(@RequestParam Long introduceId) {
-        List<IntroduceDetail> data = introduceDetailFacade.getByIntroduceId(introduceId);
+    public RespDTO<List<IntroduceDetail>> getByIntroduceId(@RequestBody IntroduceIdVO introduceIdVO) {
+        List<IntroduceDetail> data = introduceDetailFacade.getByIntroduceId(introduceIdVO.getIntroduceId());
         return RespDTO.onSuc(data);
     }
 
@@ -47,8 +48,8 @@ public class IntroduceDetailController {
             notes = "id: 提示信息明细id,必填")
     @PostMapping("/getById")
     @SysLogger("getById")
-    public RespDTO<IntroduceDetail> getById(@RequestParam Long id) {
-        IntroduceDetail data = introduceDetailFacade.getRecordById(id);
+    public RespDTO<IntroduceDetail> getById(@RequestBody IdVO idVO) {
+        IntroduceDetail data = introduceDetailFacade.getRecordById(idVO.getId());
         return RespDTO.onSuc(data);
     }
 
@@ -72,8 +73,8 @@ public class IntroduceDetailController {
     @PostMapping("/deleteRecord")
     @SysLogger("deleteRecord")
     @Transactional
-    public RespDTO<Boolean> deleteRecord(@RequestParam Long id) {
-        Boolean data = introduceDetailFacade.deleteRecord(id);
+    public RespDTO<Boolean> deleteRecord(@RequestBody IdVO idVO) {
+        Boolean data = introduceDetailFacade.deleteRecord(idVO.getId());
         return RespDTO.onSuc(data);
     }
 
@@ -82,8 +83,8 @@ public class IntroduceDetailController {
     @PostMapping("/deleteRecords")
     @SysLogger("deleteRecords")
     @Transactional
-    public RespDTO<Boolean> deleteRecords(@RequestParam Long[] ids) {
-        Boolean data = introduceDetailFacade.deleteRecords(ids);
+    public RespDTO<Boolean> deleteRecords(@RequestBody List<IdVO> idVOList) {
+        Boolean data = introduceDetailFacade.deleteRecords(idVOList);
         return RespDTO.onSuc(data);
     }
 }

+ 6 - 6
icssman-service/src/main/java/com/diagbot/web/IntroduceInfoController.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.QuestionShortDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.IntroduceInfo;
 import com.diagbot.facade.IntroduceInfoFacade;
+import com.diagbot.vo.IdVO;
 import com.diagbot.vo.IntroducePageVO;
 import com.diagbot.vo.IntroduceVO;
 import io.swagger.annotations.Api;
@@ -17,7 +18,6 @@ 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -65,8 +65,8 @@ public class IntroduceInfoController {
     @PostMapping("/deleteRecord")
     @SysLogger("deleteRecord")
     @Transactional
-    public RespDTO<Boolean> deleteRecord(@RequestParam Long id) {
-        Boolean data = introduceInfoFacade.deleteRecord(id);
+    public RespDTO<Boolean> deleteRecord(@RequestBody IdVO idVO) {
+        Boolean data = introduceInfoFacade.deleteRecord(idVO.getId());
         return RespDTO.onSuc(data);
     }
 
@@ -75,7 +75,7 @@ public class IntroduceInfoController {
     @PostMapping("/deleteRecords")
     @SysLogger("deleteRecords")
     @Transactional
-    public RespDTO<Boolean> deleteRecords(@RequestParam Long[] ids) {
+    public RespDTO<Boolean> deleteRecords(@RequestBody List<IdVO> ids) {
         Boolean data = introduceInfoFacade.deleteRecords(ids);
         return RespDTO.onSuc(data);
     }
@@ -118,8 +118,8 @@ public class IntroduceInfoController {
             notes = "id:id,必填<br>")
     @PostMapping("/getIntroduceById")
     @SysLogger("getIntroduceById")
-    public RespDTO<IntroducePageDTO> getIntroduceById(@RequestParam Long id) {
-        IntroducePageDTO data = introduceInfoFacade.getIntroduceById(id);
+    public RespDTO<IntroducePageDTO> getIntroduceById(@RequestBody IdVO idVO) {
+        IntroducePageDTO data = introduceInfoFacade.getIntroduceById(idVO.getId());
         return RespDTO.onSuc(data);
     }
 

+ 7 - 5
icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java

@@ -53,7 +53,8 @@ public class ModuleInfoController {
                     "questionId: 标签id,不是标点符号时需要填写<br>" +
                     "flag: 特殊标示类型<br>" +
                     "relationModule: 关联模板id<br>" +
-                    "text: 特殊标签(如逗号句号)")
+                    "text: 特殊标签(如逗号句号)<br>" +
+                    "textType: 特殊标签归属类型")
     @PostMapping("/saveModuleInfo")
     @SysLogger("saveModuleInfo")
     @Transactional
@@ -89,7 +90,8 @@ public class ModuleInfoController {
 
     @ApiOperation(value = "获取标签池信息[by:wangyu]",
             notes = "tagName: 标签名<br>" +
-                    "moduleId: 模板id,添加时不用填,修改时必填<br>")
+                    "moduleId: 模板id,添加时不用填,修改时必填<br>" +
+                    "type: 标签归属类型,必填")
     @PostMapping("/getQuestionInfos")
     @SysLogger("getQuestionInfos")
     public RespDTO<List<GetQuestionInfoDTO>> getQuestionInfos(@Valid @RequestBody ModuleGetQuestionInfoVO moduleGetQuestionInfoVO) {
@@ -97,7 +99,7 @@ public class ModuleInfoController {
         return RespDTO.onSuc(date);
     }
 
-    @ApiOperation(value = "获取模板信息[by:wangyu]",
+    @ApiOperation(value = "获取模板信息(作为子模板使用时传入type)[by:wangyu]",
             notes = "type: 模板类型,1:主诉模板 2:现病史模板 3:现病史空模板 4 : 其他史模板 5:嵌套模板 6:慢病模板<br>" +
                     "<br>")
     @PostMapping("/getModuleInfo")
@@ -107,7 +109,7 @@ public class ModuleInfoController {
         return RespDTO.onSuc(date);
     }
 
-    @ApiOperation(value = "获取模板列表[by:wangyu]",
+    @ApiOperation(value = "获取模板列表(主页面查询)[by:wangyu]",
             notes = "type: 模板类型,1:主诉模板 2:现病史模板 3:现病史空模板 4 : 其他史模板 5:嵌套模板 6:慢病模板<br>" +
                     "<br>")
     @PostMapping("/getModuleInfoList")
@@ -117,7 +119,7 @@ public class ModuleInfoController {
         return RespDTO.onSuc(date);
     }
 
-    @ApiOperation(value = "获取模板明细信息——修改获取已添加过的标签[by:wangyu]",
+    @ApiOperation(value = "获取模板明细信息——修改获取已添加过的标签[by:wangyu]",
             notes = "moduleId: 模板id<br>" +
                     "<br>")
     @PostMapping("/getModuleDetailInfo")

+ 5 - 5
icssman-service/src/main/java/com/diagbot/web/VitalOrderController.java

@@ -6,6 +6,7 @@ import com.diagbot.dto.QuestionShortDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.VitalOrderDTO;
 import com.diagbot.facade.VitalOrderFacade;
+import com.diagbot.vo.VitalIdVO;
 import com.diagbot.vo.VitalOrderVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -14,7 +15,6 @@ 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -70,8 +70,8 @@ public class VitalOrderController {
     @PostMapping("/deleteVitalOrder")
     @SysLogger("deleteVitalOrder")
     @Transactional
-    public RespDTO<Boolean> deleteVitalOrder(@RequestParam("vitalId") Long vitalId) {
-        Boolean data = vitalOrderFacade.deleteVitalOrder(vitalId);
+    public RespDTO<Boolean> deleteVitalOrder(@RequestBody VitalIdVO vitalIdVO) {
+        Boolean data = vitalOrderFacade.deleteVitalOrder(vitalIdVO.getVitalId());
         return RespDTO.onSuc(data);
     }
 
@@ -80,8 +80,8 @@ public class VitalOrderController {
     @PostMapping("/deleteVitalOrders")
     @SysLogger("deleteVitalOrders")
     @Transactional
-    public RespDTO<Boolean> deleteVitalOrders(@RequestParam("vitalIds") Long[] vitalIds) {
-        Boolean data = vitalOrderFacade.deleteVitalOrders(vitalIds);
+    public RespDTO<Boolean> deleteVitalOrders(@RequestBody List<VitalIdVO> vitalIdVOList) {
+        Boolean data = vitalOrderFacade.deleteVitalOrders(vitalIdVOList);
         return RespDTO.onSuc(data);
     }
 }

+ 4 - 2
icssman-service/src/main/resources/mapper/DeptInfoMapper.xml

@@ -16,15 +16,17 @@
 
     <select id="getAllDeptInfo" resultType="com.diagbot.dto.GetDeptInfoDTO">
         SELECT
-        DISTINCT a.id,a.gmt_create,b.gmt_modified,b.creator,b.modifier,a.`name`,a.remark
+        a.id,a.gmt_create,b.gmt_modified,b.creator,b.modifier,a.`name`,a.remark,c.type
         FROM
         `icss_dept_info` a
         LEFT JOIN icss_question_usual b ON a.id = b.dept_id
+        LEFT JOIN icss_question_info c ON b.question_id = c.id
         WHERE
-        a.is_deleted = 'N' AND b.is_deleted = 'N'
+        a.is_deleted = 'N' AND b.is_deleted = 'N' AND c.is_deleted = 'N'
         <if test="name != null and name != ''">
             AND a.`name` LIKE CONCAT('%',#{name},'%')
         </if>
+        GROUP BY a.id,c.type
         ORDER BY
         b.gmt_modified DESC
     </select>

+ 1 - 0
icssman-service/src/main/resources/mapper/DeptVitalMapper.xml

@@ -40,6 +40,7 @@
           <if test="deptVitalPageVO.deptName!=null and deptVitalPageVO.deptName!=''">
               AND a.name like CONCAT("%",#{deptVitalPageVO.deptName},"%")
           </if>
+        order by gmt_modified desc
     </select>
 
 </mapper>

+ 13 - 4
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -29,6 +29,7 @@
         <result column="show_add" property="showAdd" />
         <result column="show_info" property="showInfo" />
         <result column="joint" property="joint" />
+        <result column="formula_code" property="formulaCode" />
         <result column="remark" property="remark" />
     </resultMap>
 
@@ -53,7 +54,7 @@
         <if test="existName != null and existName != ''">
             and tag_name = #{existName}
         </if>
-        <if test="sexType != null and sexType != ''">
+        <if test="sexType != null and sexType != 3 and sexType != ''">
             and sex_type in (3, #{sexType})
         </if>
         <if test="age != null and age != ''">
@@ -129,6 +130,7 @@
         `icss_question_info` a
         WHERE
         a.is_deleted = 'N'
+        AND a.type = #{type}
         <if test="moduleId != null and moduleId != ''">
             AND a.id NOT IN (
             SELECT
@@ -138,8 +140,15 @@
             WHERE
             c.is_deleted = 'N'
             AND c.module_id = #{moduleId}
+            AND c.question_id != ''
             )
         </if>
+        <if test="noIds != null and noIds.size != 0">
+            AND a.id NOT IN
+            <foreach  collection="noIds" item="noId" open="("  separator=","  close=")">
+                #{noId}
+            </foreach>
+        </if>
         <if test="tagName != null and tagName != ''">
             AND a.tag_name like CONCAT('%', #{tagName}, '%')
         </if>
@@ -166,7 +175,7 @@
     <select id="getQuestionUsualsByDept" resultType="com.diagbot.dto.GetQuestionInfoDTO">
         SELECT a.* FROM `icss_question_info` a
         LEFT JOIN icss_question_usual b ON a.id = b.question_id
-        WHERE b.dept_id = #{deptId}
+        WHERE b.dept_id = #{deptId} AND a.type = #{type}
         GROUP BY a.id
     </select>
 
@@ -212,7 +221,7 @@
                 m.parent_question = #{myId}
             </foreach>
         </if>
-        <if test="sexType != null">
+        <if test="sexType != null and sexType != 3 and sexType != ''">
             and t.sex_type in (3, #{sexType})
         </if>
         <if test="age != null">
@@ -231,7 +240,7 @@
     <select id="getByParam" parameterType="java.util.Map" resultMap="BaseResultMap">
         select * from icss_question_info  where is_deleted = 'N'
         and id = #{id}
-        <if test="sexType != null and sexType != ''">
+        <if test="sexType != null and sexType != 3 and sexType != ''">
             and sex_type in (3, #{sexType})
         </if>
         <if test="age != null and age != ''">

+ 1 - 4
icssman-service/src/main/resources/mapper/QuestionUsualMapper.xml

@@ -17,10 +17,7 @@
     </resultMap>
 
     <select id="getQuestionUsualByQuestionId" resultType="com.diagbot.entity.QuestionUsual">
-        SELECT a.* FROM `icss_question_usual` a WHERE a.is_deleted = 'N' AND a.dept_id = #{questionUsualVO.deptId} AND a.question_id in
-        <foreach item="questionId" collection="questionUsualVO.questionId" open="(" separator="," close=")">
-            #{questionId}
-        </foreach>
+        SELECT a.* FROM `icss_question_usual` a WHERE a.is_deleted = 'N' AND a.dept_id = #{questionUsualVO.deptId} AND a.type = #{type}
     </select>
 
     <select id="getQuestionUsualByDeptIds" resultType="com.diagbot.dto.GetQuestionUsualAndTypeDTO">