瀏覽代碼

Merge remote-tracking branch 'origin/dev/icss' into dev/icss

wangyu 6 年之前
父節點
當前提交
62f3bda95e

+ 0 - 1
icss-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -27,7 +27,6 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .authorizeRequests()
 //                .regexMatchers(".*swagger.*", ".*v2.*", ".*webjars.*", "/druid.*", "/actuator.*", "/hystrix.*").permitAll()
 //                .antMatchers("/**").authenticated();
-                .antMatchers("/questionInfo/getById").permitAll()
                 .antMatchers("/**").permitAll();
     }
 

+ 0 - 1
icss-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -63,7 +63,6 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/druid/**", request)
                 || matchers("/actuator/**", request)
                 || matchers("/hystrix/**", request)
-                || matchers("/questionInfo/getById", request)
                 || matchers("/", request)) {
             return true;
         }

+ 9 - 2
icss-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -1,9 +1,13 @@
 package com.diagbot.dto;
 
+import com.diagbot.entity.QuestionDetail;
+import com.diagbot.entity.QuestionInfo;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @Description: 返回标签内容
@@ -15,8 +19,8 @@ import java.math.BigDecimal;
 public class QuestionDTO {
 
     private Long id;// id
-    private String name;//名称
-    private String showName;//界面显示内容
+    private String name;//内容
+    private String tagName;//标签名称
     private Integer type;//类型(1:主诉 2:现病史 3:其他史 4:查体,5:化验 6:辅检 7:诊断)
     private Integer controlType; //控件类型
     private Integer subType; //子类型
@@ -29,5 +33,8 @@ public class QuestionDTO {
     private String judgeType; //判断类型(0:本身异常;1:本身正常;2:数字范围;3:计算公式;9:无需判断)
     private String tagQuestions; //标签关联questions
     private String copyType;//是否显示 + (0:不显示 1 :显示)
+    private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
+    private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
+    private List<QuestionInfo> questionRelationList = new ArrayList<>(); //症状同级关联
     private String remark;//备注
 }

+ 1 - 29
icss-service/src/main/java/com/diagbot/entity/QuestionDetail.java

@@ -1,13 +1,10 @@
 package com.diagbot.entity;
 
-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>
@@ -27,34 +24,8 @@ public class QuestionDetail implements Serializable {
     /**
      * 主键
      */
-    @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;
-
     /**
      * 名称
      */
@@ -85,4 +56,5 @@ public class QuestionDetail implements Serializable {
      */
     private String remark;
 
+
 }

+ 3 - 32
icss-service/src/main/java/com/diagbot/entity/QuestionInfo.java

@@ -1,14 +1,11 @@
 package com.diagbot.entity;
 
-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.math.BigDecimal;
-import java.util.Date;
 
 /**
  * <p>
@@ -28,43 +25,17 @@ public class QuestionInfo implements Serializable {
     /**
      * 主键
      */
-    @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;
-
-    /**
-     * 名称
+     * 内容
      */
     private String name;
 
     /**
-     * 界面显示内容
+     * 标签名
      */
-    private String showName;
+    private String tagName;
 
     /**
      * 性别(1:男 2:女 3:通用)

+ 2 - 2
icss-service/src/main/java/com/diagbot/entity/QuestionMapping.java

@@ -69,10 +69,10 @@ public class QuestionMapping implements Serializable {
     /**
      * 显示位置(0:在标签后,1:在标签前)
      */
-    private Integer showType;
+    private Integer position;
 
     /**
-     * 主症状和伴随症状对应的question类型(1:主症状特有 2:伴随症状特有 3:症状公用
+     * 主症状和伴随症状对应的question类型(0:症状公用 1:主症状特有 2:伴随症状特有 )
      */
     private Integer type;
 

+ 6 - 7
icss-service/src/main/java/com/diagbot/enums/ShowTypeEnum.java

@@ -8,10 +8,9 @@ import lombok.Setter;
  * @author: zhoutg
  * @Date: 2018/10/26 10:35
  */
-public enum ShowTypeEnum implements KeyedNamed {
+public enum ControlTypeEnum implements KeyedNamed {
 
-    ITSELF(1, "本体"),
-    SYNONYMS(2, "同义词");
+    EMPTY_TAG(0, "空标签");
 
     @Setter
     private Integer key;
@@ -19,13 +18,13 @@ public enum ShowTypeEnum implements KeyedNamed {
     @Setter
     private String name;
 
-    ShowTypeEnum(Integer key, String name) {
+    ControlTypeEnum(Integer key, String name) {
         this.key = key;
         this.name = name;
     }
 
-    public static ShowTypeEnum getEnum(Integer key) {
-        for (ShowTypeEnum item : ShowTypeEnum.values()) {
+    public static ControlTypeEnum getEnum(Integer key) {
+        for (ControlTypeEnum item : ControlTypeEnum.values()) {
             if (item.key == key) {
                 return item;
             }
@@ -34,7 +33,7 @@ public enum ShowTypeEnum implements KeyedNamed {
     }
 
     public static String getName(Integer key) {
-        ShowTypeEnum item = getEnum(key);
+        ControlTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
     }
 

+ 39 - 0
icss-service/src/main/java/com/diagbot/facade/QuestionDetailFacade.java

@@ -0,0 +1,39 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.QuestionDetail;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.QuestionDetailServiceImpl;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 标签业务层
+ * @author: zhoutg
+ * @time: 2018/8/6 9:11
+ */
+@Component
+public class QuestionDetailFacade extends QuestionDetailServiceImpl {
+
+
+    /**
+     * 根据id获取标签明细
+     *
+     * @param questionId 标签id
+     * @return 标签内容
+     */
+    public List<QuestionDetail> getByQuestionId(Long questionId) {
+        List<QuestionDetail> questionDetailList = new ArrayList<>();
+        if(questionId == null) {
+            return questionDetailList;
+        }
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("question_id", questionId);
+        queryWrapper.orderByAsc("order_no");
+        questionDetailList = this.list(queryWrapper);
+        return questionDetailList;
+    }
+}

+ 28 - 5
icss-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -1,15 +1,18 @@
 package com.diagbot.facade;
 
 import com.diagbot.dto.QuestionDTO;
+import com.diagbot.entity.QuestionDetail;
 import com.diagbot.entity.QuestionInfo;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
+import com.diagbot.enums.ControlTypeEnum;
 import com.diagbot.service.impl.QuestionInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.QuestionVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,6 +23,8 @@ import java.util.Map;
 @Component
 public class QuestionFacade extends QuestionInfoServiceImpl {
 
+    @Autowired
+    QuestionDetailFacade questionDetailFacade;
 
     /**
      * 根据参数返回标签内容
@@ -33,12 +38,30 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         paramMap.put("age", questionVO.getAge());
         paramMap.put("id", questionVO.getId());
         QuestionInfo questionInfo = this.getByParam(paramMap);
-        if(questionInfo == null) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                    "未找到标签");
+        if(questionInfo == null) { //无数据直接返回,不通过报错的形式返回
+            return null;
         }
         QuestionDTO res = new QuestionDTO();
         BeanUtil.copyProperties(questionInfo, res);
+
+        //获取明细项
+        if(ControlTypeEnum.EMPTY_TAG.getKey() != res.getControlType()) { //不为空标签
+            List<QuestionDetail> questionDetailList = questionDetailFacade.getByQuestionId(questionVO.getId());
+            res.setQuestionDetailList(questionDetailList);
+        }
+
+        //获取子标签
+        List<QuestionInfo> questionMapping = this.getByQuestionMapping(paramMap);
+        List<QuestionDTO> sonQuestionList = BeanUtil.listCopyTo(questionMapping, QuestionDTO.class);
+        res.setQuestionMapping(sonQuestionList);
+        //获取子标签的明细项
+        if(ListUtil.isNotEmpty(sonQuestionList)) {
+            for(QuestionDTO bean : sonQuestionList) {
+                List<QuestionDetail> questionDetailList = questionDetailFacade.getByQuestionId(bean.getId());
+                bean.setQuestionDetailList(questionDetailList);
+            }
+        }
         return res;
     }
+
 }

+ 9 - 0
icss-service/src/main/java/com/diagbot/mapper/QuestionInfoMapper.java

@@ -3,6 +3,7 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.entity.QuestionInfo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -22,4 +23,12 @@ public interface QuestionInfoMapper extends BaseMapper<QuestionInfo> {
      * @return
      */
     public QuestionInfo getByParam(Map map);
+
+
+    /**
+     *  根据questionMapping获取标签信息
+     * @param map 参数
+     * @return
+     */
+    public List<QuestionInfo> getByQuestionMapping(Map map);
 }

+ 10 - 1
icss-service/src/main/java/com/diagbot/service/QuestionInfoService.java

@@ -1,8 +1,9 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.QuestionInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.QuestionInfo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -21,4 +22,12 @@ public interface QuestionInfoService extends IService<QuestionInfo> {
      * @return
      */
     public QuestionInfo getByParam(Map map);
+
+
+    /**
+     *  根据questionMapping获取标签信息
+     * @param map 参数
+     * @return
+     */
+    public List<QuestionInfo> getByQuestionMapping(Map map);
 }

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

@@ -6,6 +6,7 @@ import com.diagbot.service.QuestionInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -23,4 +24,9 @@ public class QuestionInfoServiceImpl extends ServiceImpl<QuestionInfoMapper, Que
     public QuestionInfo getByParam(Map map) {
         return baseMapper.getByParam(map);
     }
+
+    @Override
+    public List<QuestionInfo> getByQuestionMapping(Map map) {
+        return baseMapper.getByQuestionMapping(map);
+    }
 }

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

@@ -34,7 +34,7 @@ public class QuestionInfoController {
                     "sexType:性别,1:男,2:女<br>" +
                     "age:年龄")
     @PostMapping("/getById")
-    public RespDTO<QuestionDTO> getById(@RequestBody  QuestionVO questionVO) {
+    public RespDTO<QuestionDTO> getById(@RequestBody QuestionVO questionVO) {
         QuestionDTO data = questionFacade.getById(questionVO);
         return RespDTO.onSuc(data);
     }

+ 0 - 5
icss-service/src/main/resources/mapper/QuestionDetailMapper.xml

@@ -5,11 +5,6 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.QuestionDetail">
         <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="question_id" property="questionId" />
         <result column="order_no" property="orderNo" />

+ 16 - 5
icss-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -5,11 +5,6 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.QuestionInfo">
         <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="show_name" property="showName" />
         <result column="sex_type" property="sexType" />
@@ -41,4 +36,20 @@
             <![CDATA[ and age_end >= #{age} ]]>
         </if>
     </select>
+
+
+    <select id="getByQuestionMapping" parameterType="java.util.Map" resultMap="BaseResultMap">
+        select t.* from icss_question_info t, icss_question_mapping m
+        where t.is_deleted = 'N' and m.is_deleted = 'N' and m.son_question = t.id
+        and m.parent_question = #{id}
+        <if test="sexType != null">
+            and t.sex_type in (3, #{sexType})
+        </if>
+        <if test="age != null">
+            <![CDATA[ and t.age_begin <= #{age} ]]>
+            <![CDATA[ and t.age_end >= #{age} ]]>
+        </if>
+        order by m.order_no
+    </select>
+
 </mapper>