Bläddra i källkod

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

wangfeng 6 år sedan
förälder
incheckning
7a37a10daa
43 ändrade filer med 840 tillägg och 103 borttagningar
  1. 14 1
      icss-service/src/main/java/com/diagbot/entity/BuriedSomeStatistical.java
  2. 146 0
      icss-service/src/main/java/com/diagbot/entity/LisMapping.java
  3. 1 0
      icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java
  4. 3 30
      icss-service/src/main/java/com/diagbot/facade/LisConfigFacade.java
  5. 42 0
      icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  6. 3 2
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  7. 16 0
      icss-service/src/main/java/com/diagbot/mapper/LisMappingMapper.java
  8. 16 0
      icss-service/src/main/java/com/diagbot/service/LisMappingService.java
  9. 20 0
      icss-service/src/main/java/com/diagbot/service/impl/impl/LisMappingServiceImpl.java
  10. 5 0
      icss-service/src/main/java/com/diagbot/vo/Taggeds.java
  11. 4 2
      icss-service/src/main/resources/mapper/BuriedSomeStatisticalMapper.xml
  12. 18 0
      icss-service/src/main/resources/mapper/LisMappingMapper.xml
  13. 1 8
      icssman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  14. 20 0
      icssman-service/src/main/java/com/diagbot/dto/ModuleInfoListDTO.java
  15. 44 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  16. 10 0
      icssman-service/src/main/java/com/diagbot/entity/ModuleInfo.java
  17. 25 0
      icssman-service/src/main/java/com/diagbot/entity/wrapper/QuestionInfoWrapper.java
  18. 4 4
      icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java
  19. 1 1
      icssman-service/src/main/java/com/diagbot/facade/DisclaimerInformationFacaed.java
  20. 4 4
      icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  21. 3 3
      icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java
  22. 49 2
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  23. 50 0
      icssman-service/src/main/java/com/diagbot/facade/QuestionDetailFacade.java
  24. 103 2
      icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java
  25. 1 1
      icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  26. 22 23
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  27. 1 1
      icssman-service/src/main/java/com/diagbot/facade/VersionDetailFacade.java
  28. 1 1
      icssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  29. 4 4
      icssman-service/src/main/java/com/diagbot/facade/VitalOrderFacade.java
  30. 11 0
      icssman-service/src/main/java/com/diagbot/mapper/ModuleInfoMapper.java
  31. 17 2
      icssman-service/src/main/java/com/diagbot/mapper/QuestionInfoMapper.java
  32. 11 0
      icssman-service/src/main/java/com/diagbot/service/ModuleInfoService.java
  33. 19 0
      icssman-service/src/main/java/com/diagbot/service/QuestionInfoService.java
  34. 8 0
      icssman-service/src/main/java/com/diagbot/service/impl/ModuleInfoServiceImpl.java
  35. 11 0
      icssman-service/src/main/java/com/diagbot/service/impl/QuestionInfoServiceImpl.java
  36. 2 1
      icssman-service/src/main/java/com/diagbot/vo/GetModuleInfoVO.java
  37. 17 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionIdsVO.java
  38. 17 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionVO.java
  39. 12 0
      icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java
  40. 33 7
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  41. 4 4
      icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java
  42. 8 0
      icssman-service/src/main/resources/mapper/ModuleInfoMapper.xml
  43. 39 0
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

+ 14 - 1
icss-service/src/main/java/com/diagbot/entity/BuriedSomeStatistical.java

@@ -93,7 +93,20 @@ public class BuriedSomeStatistical implements Serializable {
      */
     private Integer operationNum;
 
-    public Long getId() {
+    /**
+     * 是否存在标签库
+     */
+    private Integer status;
+    
+    public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Long getId() {
         return id;
     }
 

+ 146 - 0
icss-service/src/main/java/com/diagbot/entity/LisMapping.java

@@ -0,0 +1,146 @@
+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;
+
+/**
+ * <p>
+ * 化验项目公表映射
+ * </p>
+ *
+ * @author zhaops
+ * @since 2018-12-27
+ */
+@TableName("icss_lis_mapping")
+public class LisMapping implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 套餐名
+     */
+    private String mealName;
+
+    /**
+     * 项目名
+     */
+    private String itemName;
+
+    /**
+     * 公表名
+     */
+    private String uniqueName;
+
+    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 LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime 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 getMealName() {
+        return mealName;
+    }
+
+    public void setMealName(String mealName) {
+        this.mealName = mealName;
+    }
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+    public String getUniqueName() {
+        return uniqueName;
+    }
+
+    public void setUniqueName(String uniqueName) {
+        this.uniqueName = uniqueName;
+    }
+
+    @Override
+    public String toString() {
+        return "LisMapping{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", mealName=" + mealName +
+        ", itemName=" + itemName +
+        ", uniqueName=" + uniqueName +
+        "}";
+    }
+}

+ 1 - 0
icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java

@@ -40,6 +40,7 @@ public class BuriedSomeStatisticalFacade extends BuriedSomeStatisticalServiceImp
             buriedData.setLabelName(taggedsNew.getLabelName());
             buriedData.setOperationNum(taggedsNew.getOperationNum());
             buriedData.setOperationType(taggedsNew.getOperationType());
+            buriedData.setStatus(taggedsNew.getStatus());
             buriedList.add(buriedData);
         }
 

+ 3 - 30
icss-service/src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -1,18 +1,14 @@
 package com.diagbot.facade;
 
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.diagbot.util.EntityUtil;
-import org.springframework.stereotype.Component;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.LisConfigDTO;
 import com.diagbot.entity.LisConfig;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.LisConfigServiceImpl;
 import com.diagbot.util.BeanUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
 
 /**
  * 
@@ -37,27 +33,4 @@ public class LisConfigFacade extends LisConfigServiceImpl {
 		List<LisConfigDTO> datas = BeanUtil.listCopyTo(data, LisConfigDTO.class);
 		return datas;
 	}
-
-	/**
-	 * 根据医院编码获取化验项映射关系
-	 *
-	 * @param hospitalCode
-	 * @return
-	 */
-	public Map<String, Map<String, String>> getLisConfigMapByHospitalCode(String hospitalCode) {
-		Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
-		QueryWrapper<LisConfig> lisConfigQueryWrapper = new QueryWrapper<>();
-		lisConfigQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-				.eq("hospital_code", hospitalCode);
-		List<LisConfig> lisConfigList = this.list(lisConfigQueryWrapper);
-		Map<String, List<LisConfig>> lisConfigMap = EntityUtil.makeEntityListMap(lisConfigList, "mealName");
-		for (Map.Entry<String, List<LisConfig>> entry : lisConfigMap.entrySet()) {
-			if (entry.getValue().size() > 0) {
-				retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "itemName", "uniqueName"));
-			} else {
-				retMap.put(entry.getKey(), null);
-			}
-		}
-		return retMap;
-	}
 }

+ 42 - 0
icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -0,0 +1,42 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.LisMapping;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.impl.LisMappingServiceImpl;
+import com.diagbot.util.EntityUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/12/27 15:13
+ */
+@Component
+public class LisMappingFacade extends LisMappingServiceImpl {
+
+    /**
+     * 获取化验公表映射关系
+     *
+     * @return
+     */
+    public Map<String, Map<String, String>> getLisMapping() {
+        Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
+        QueryWrapper<LisMapping> lisMappingQueryWrapper = new QueryWrapper<>();
+        lisMappingQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<LisMapping> lisMappingList = this.list(lisMappingQueryWrapper);
+        Map<String, List<LisMapping>> lisMappingMap = EntityUtil.makeEntityListMap(lisMappingList, "mealName");
+        for (Map.Entry<String, List<LisMapping>> entry : lisMappingMap.entrySet()) {
+            if (entry.getValue().size() > 0) {
+                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "itemName", "uniqueName"));
+            } else {
+                retMap.put(entry.getKey(), null);
+            }
+        }
+        return retMap;
+    }
+}

+ 3 - 2
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -14,6 +14,7 @@ import com.diagbot.dto.QuestionDTO;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.DeptVital;
 import com.diagbot.entity.LisConfig;
+import com.diagbot.entity.LisMapping;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.VitalOrder;
 import com.diagbot.enums.IsDeleteEnum;
@@ -68,7 +69,7 @@ public class PushFacade {
     @Autowired
     private HighRiskServiceClient highRiskServiceClient;
     @Autowired
-    private LisConfigFacade lisConfigFacade;
+    private LisMappingFacade lisMappingFacade;
 
     /**
      * 推理接口
@@ -101,7 +102,7 @@ public class PushFacade {
 
         //化验项映射,转公表
         if (pushVO.getLis().size() > 0) {
-            Map<String, Map<String, String>> lisConfigMap = lisConfigFacade.getLisConfigMapByHospitalCode("A000");
+            Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping();
             for (LisResultVO lisResultVO : pushVO.getLis()) {
                 //source=0 icss页面数据,source=1 外部导入数据
                 if (!lisResultVO.getSource().equals(LisSourceEnum.Inner.getKey())) {

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.LisMapping;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 化验项目公表映射 Mapper 接口
+ * </p>
+ *
+ * @author zhaops
+ * @since 2018-12-27
+ */
+public interface LisMappingMapper extends BaseMapper<LisMapping> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.LisMapping;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 化验项目公表映射 服务类
+ * </p>
+ *
+ * @author zhaops
+ * @since 2018-12-27
+ */
+public interface LisMappingService extends IService<LisMapping> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl.impl;
+
+import com.diagbot.entity.LisMapping;
+import com.diagbot.mapper.LisMappingMapper;
+import com.diagbot.service.LisMappingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 化验项目公表映射 服务实现类
+ * </p>
+ *
+ * @author zhaops
+ * @since 2018-12-27
+ */
+@Service
+public class LisMappingServiceImpl extends ServiceImpl<LisMappingMapper, LisMapping> implements LisMappingService {
+
+}

+ 5 - 0
icss-service/src/main/java/com/diagbot/vo/Taggeds.java

@@ -37,4 +37,9 @@ public class Taggeds {
      * 操作次数
      */
     private Integer operationNum;
+    
+    /**
+     * 是否存在标签库
+     */
+    private Integer status;
 }

+ 4 - 2
icss-service/src/main/resources/mapper/BuriedSomeStatisticalMapper.xml

@@ -19,12 +19,13 @@
 		<result column="label_name" property="labelName" />
 		<result column="operation_type" property="operationType" />
 		<result column="operation_num" property="operationNum" />
+		<result column="status" property="status" />
 	</resultMap>
 	<insert id="insertCodeBatch" parameterType="java.util.List">
 		insert into icss_buried_some_statistical
 		(gmt_create , creator , hospital_id ,
 		hospital_dept_id , doctor_id , patient_id , inquiry_code ,
-		label_id , label_name , operation_type , operation_num )
+		label_id , label_name , operation_type , operation_num,status )
 		values
 		<foreach collection="list" item="reddemCode" index="index"
 			separator=",">
@@ -38,7 +39,8 @@
 			#{reddemCode.labelId},
 			#{reddemCode.labelName},
 			#{reddemCode.operationType},
-			#{reddemCode.operationNum}
+			#{reddemCode.operationNum},
+			#{reddemCode.status}
 			)
 		</foreach>
 	</insert>

+ 18 - 0
icss-service/src/main/resources/mapper/LisMappingMapper.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.LisMappingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.LisMapping">
+        <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="meal_name" property="mealName" />
+        <result column="item_name" property="itemName" />
+        <result column="unique_name" property="uniqueName" />
+    </resultMap>
+
+</mapper>

+ 1 - 8
icssman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -1,19 +1,12 @@
 package com.diagbot.config.security;
 
 import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.Token;
-import com.diagbot.util.HttpUtils;
-import com.diagbot.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.AccessDecisionManager;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.access.ConfigAttribute;
-import org.springframework.security.authentication.AccountExpiredException;
 import org.springframework.security.authentication.InsufficientAuthenticationException;
 import org.springframework.security.core.Authentication;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.web.FilterInvocation;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.stereotype.Service;
 
@@ -48,7 +41,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
 //                tokenStr = tokenStr.replaceFirst("Bearer ", "");
 //                token.setToken(tokenStr);
 //                RespDTO<Boolean> res = userServiceClient.verifyToken(token);
-//                if (res == null || !"0".equals(res.code)) {
+//                if (res == null || !CommonErrorCode.OK.getCode().equals(res.code)) {
 //                    throw new AccountExpiredException("token expire");
 //                }
 //                if (!res.data) {

+ 20 - 0
icssman-service/src/main/java/com/diagbot/dto/ModuleInfoListDTO.java

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.ModuleInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2018/12/27 11:46
+ */
+@Getter
+@Setter
+public class ModuleInfoListDTO extends ModuleInfo {
+    //操作人名称
+    private String userName;
+    //归属名称
+    private String ascriptionName;
+
+}

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

@@ -0,0 +1,44 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.QuestionDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 返回标签内容
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class QuestionDTO {
+
+    private Long id;// id
+    private String name;//内容
+    private String tagName;//标签名称
+    private Integer type;//类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断)
+    private Integer controlType; //控件类型
+    private Integer subType; //子类型
+    private Integer tagType; //标签标识
+    private String labelPrefix = ""; //前置内容
+    private String labelSuffix = ""; //后置内容
+    private BigDecimal minValue; //最小值
+    private BigDecimal maxValue; //最大值
+    private Integer position;    //标签显示位置(0:在标签后,1:在标签前)
+    private Integer showAdd;    //是否显示+
+    private Integer formPosition; //填写单显示位置(0:左, 1:上)
+    private Integer textGenerate;  //文本生成规则
+    private Integer symptomType; //主症状和伴随症状对应的question类型
+    private Integer exclusionType; //互斥类型
+    private String judgeType; //判断类型(0:本身异常;1:本身正常;2:数字范围;3:计算公式;9:无需判断)
+    private Integer copyType;//是否复制
+    private Integer showInfo; //是否显示i
+    private String joint = "";     //标签后的连接符
+    private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
+    private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
+    private String remark;//备注
+}

+ 10 - 0
icssman-service/src/main/java/com/diagbot/entity/ModuleInfo.java

@@ -60,6 +60,16 @@ public class ModuleInfo implements Serializable {
      */
     private String name;
 
+    /**
+     * 类型
+     */
+    private Integer type;
+
+    /**
+     * 慢病
+     */
+    private Long disease;
+
     /**
      * 备注
      */

+ 25 - 0
icssman-service/src/main/java/com/diagbot/entity/wrapper/QuestionInfoWrapper.java

@@ -0,0 +1,25 @@
+package com.diagbot.entity.wrapper;
+
+import com.diagbot.entity.QuestionInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 标签扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-11-15
+ */
+@Getter
+@Setter
+public class QuestionInfoWrapper extends QuestionInfo {
+
+    private Long parentQuestion; //父级问题ID
+    private Integer position; //显示位置
+    private Integer exclusionType; //互斥类型
+    private Integer symptomType; //主症状和伴随症状对应的question类型
+    private Integer formPosition; //填写单显示位置
+
+}

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

@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
 public class DeptVitalFacade extends DeptVitalServiceImpl {
 
     @Autowired
-    private QuestionInfoFacade questionInfoFacade;
+    private QuestionFacade questionFacade;
     @Autowired
     private DeptInfoFacade deptInfoFacade;
     @Autowired
@@ -72,7 +72,7 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
         questionInfoQueryWrapper.in("id", deptVitalVO.getVitalIds()).
                 eq("type", QuestionTypeEnum.Vital.getKey()).
                 eq("is_deleted", IsDeleteEnum.N.getKey());
-        List<QuestionInfo> questionInfoList = questionInfoFacade.list(questionInfoQueryWrapper);
+        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
 
         Map<Long, QuestionInfo> questionInfoMap = EntityUtil.makeEntityMap(questionInfoList, "id");
         for (Long vital : deptVitalVO.getVitalIds()) {
@@ -159,7 +159,7 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
         List<Long> vitalIds = deptVitalList.stream()
                 .map(deptVitals -> deptVitals.getVitalId())
                 .collect(Collectors.toList());
-        List<QuestionInfo> vitalList = Lists.newArrayList(questionInfoFacade.listByIds(vitalIds));
+        List<QuestionInfo> vitalList = Lists.newArrayList(questionFacade.listByIds(vitalIds));
         List<QuestionShortDTO> vitals = Lists.newArrayList();
         for (QuestionInfo questionInfo : vitalList) {
             QuestionShortDTO questionShortDTO = new QuestionShortDTO();
@@ -174,7 +174,7 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
                 eq("sub_type", 0).
                 notIn("id", vitalIds).
                 eq("type", QuestionTypeEnum.Vital.getKey());
-        List<QuestionInfo> unSelectedVitalList = questionInfoFacade.list(unSelectedVitalQueryWrapper);
+        List<QuestionInfo> unSelectedVitalList = questionFacade.list(unSelectedVitalQueryWrapper);
         List<QuestionShortDTO> unSelectedVitals = Lists.newArrayList();
         for (QuestionInfo questionInfo : unSelectedVitalList) {
             QuestionShortDTO questionShortDTO = new QuestionShortDTO();

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

@@ -58,7 +58,7 @@ public class DisclaimerInformationFacaed extends DisclaimerInformationServiceImp
         Map<String, String> userNames = new HashMap<>();
         if (modifierid.size() > 0) {
             RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
-            if (userNamesDTO == null || !"0".equals(userNamesDTO.code)) {
+            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                         "获取所有用户信息失败");
             }

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

@@ -54,7 +54,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     @Autowired
     UserServiceClient userServiceClient;
     @Autowired
-    QuestionInfoFacade questionInfoFacade;
+    QuestionFacade questionFacade;
 
     /**
      * 保存提示信息(新增or修改)
@@ -278,7 +278,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         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 = questionInfoFacade.list(questionInfoQueryWrapper);
+        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
 
         List<QuestionShortDTO> questionShortDTOList = Lists.newLinkedList();
         String tagName = "";
@@ -297,7 +297,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         //未关联的标签
         QueryWrapper<QuestionInfo> unRelatedQuestionWrapper = new QueryWrapper<>();
         unRelatedQuestionWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).notIn("id", questionIds);
-        List<QuestionInfo> unRelatedQuestionList = questionInfoFacade.list(unRelatedQuestionWrapper);
+        List<QuestionInfo> unRelatedQuestionList = questionFacade.list(unRelatedQuestionWrapper);
         List<QuestionShortDTO> unRelatedQuestionDTOList = Lists.newLinkedList();
         for (QuestionInfo questionInfo : unRelatedQuestionList) {
             QuestionShortDTO questionShortDTO = new QuestionShortDTO();
@@ -317,7 +317,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     public List<QuestionShortDTO> getAllQuestionList() {
         QueryWrapper<QuestionInfo> unRelatedQuestionWrapper = new QueryWrapper<>();
         unRelatedQuestionWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        List<QuestionInfo> unRelatedQuestionList = questionInfoFacade.list(unRelatedQuestionWrapper);
+        List<QuestionInfo> unRelatedQuestionList = questionFacade.list(unRelatedQuestionWrapper);
         List<QuestionShortDTO> unRelatedQuestionDTOList = Lists.newLinkedList();
         for (QuestionInfo questionInfo : unRelatedQuestionList) {
             QuestionShortDTO questionShortDTO = new QuestionShortDTO();

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

@@ -37,7 +37,7 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
     @Qualifier("moduleDetailServiceImpl")
     private ModuleDetailService moduleDetailService;
     @Autowired
-    private QuestionInfoFacade questionInfoFacade;
+    private QuestionFacade questionFacade;
     @Autowired
     @Qualifier("questionInfoServiceImpl")
     private QuestionInfoService questionInfoService;
@@ -90,7 +90,7 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("tag_type", TagTypeEnum.T8.getKey())
                 .in("name",textList);
-        List<QuestionInfo> questionInfoList = questionInfoFacade.list(questionInfoQueryWrapper);
+        List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
         //将标签id放入map
         Map<String,Long> questionIdMap = new HashMap<>();
         QuestionInfo addquestionInfo = null;
@@ -123,7 +123,7 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper1 = new QueryWrapper<>();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("tag_type", TagTypeEnum.T8.getKey());
-        List<QuestionInfo> questionInfoList1 = questionInfoFacade.list(questionInfoQueryWrapper1);
+        List<QuestionInfo> questionInfoList1 = questionFacade.list(questionInfoQueryWrapper1);
         for (QuestionInfo questionInfo:questionInfoList1) {
             questionIdMap.put(questionInfo.getTagName(),questionInfo.getId());
         }

+ 49 - 2
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -2,8 +2,13 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.ModuleInfoDTO;
+import com.diagbot.dto.ModuleInfoListDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.DictionaryInfo;
 import com.diagbot.entity.ModuleDetail;
 import com.diagbot.entity.ModuleInfo;
 import com.diagbot.enums.IsDeleteEnum;
@@ -40,7 +45,11 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
     @Autowired
     ModuleDetailFacade moduleDetailFacade;
     @Autowired
-    QuestionInfoFacade questionInfoFacade;
+    QuestionFacade questionFacade;
+    @Autowired
+    UserServiceClient userServiceClient;
+    @Autowired
+    DictionaryFacade dictionaryFacade;
 
     /**
      * 根据id删除标签模板
@@ -122,7 +131,7 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
      * @return
      */
     public List<GetQuestionInfoDTO> getQuestionInfos(ModuleGetQuestionInfoVO moduleGetQuestionInfoVO){
-        List<GetQuestionInfoDTO> getQuestionInfoDTOS = questionInfoFacade.moduleGetQuestiongInfoByName(moduleGetQuestionInfoVO);
+        List<GetQuestionInfoDTO> getQuestionInfoDTOS = questionFacade.moduleGetQuestiongInfoByName(moduleGetQuestionInfoVO);
         return getQuestionInfoDTOS;
     }
 
@@ -173,4 +182,42 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
             }
         return moduleInfoDTOList;
     }
+
+    /**
+     * 模板维护页面获取模板列表
+     *
+     * @param getModuleInfoVO
+     * @return
+     */
+    public IPage<ModuleInfoListDTO> getModuleInfoList(GetModuleInfoVO getModuleInfoVO){
+        //获取模板信息
+        IPage<ModuleInfoListDTO> moduleInfoDTOIPage = this.getModuleInfoListByType(getModuleInfoVO);
+        List<String> ids = new ArrayList<>();
+        for (ModuleInfoListDTO moduleInfoListDTO : moduleInfoDTOIPage.getRecords()) {
+            ids.add(moduleInfoListDTO.getModifier());
+        }
+        //获取模板类型名称
+        QueryWrapper<DictionaryInfo> dictionaryInfoQueryWrapper = new QueryWrapper<>();
+        dictionaryInfoQueryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+            .eq("group_type",4)
+            .eq("return_type",1)
+            .orderByDesc("order_no");
+        List<DictionaryInfo> dictionaryInfoList = dictionaryFacade.list(dictionaryInfoQueryWrapper);
+        Map<String,DictionaryInfo> dictionaryInfoMap = new HashMap<>();
+        for (DictionaryInfo dictionaryInfo:dictionaryInfoList) {
+            dictionaryInfoMap.put(dictionaryInfo.getVal(),dictionaryInfo);
+        }
+        //获取用户信息
+        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
+        if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "获取用户信息失败");
+        }
+        //将用户信息放入实体
+        for (ModuleInfoListDTO moduleInfoListDTO : moduleInfoDTOIPage.getRecords()) {
+            moduleInfoListDTO.setUserName(respDTO.data.get(moduleInfoListDTO.getModifier()));
+            moduleInfoListDTO.setAscriptionName(dictionaryInfoMap.get(String.valueOf(moduleInfoListDTO.getType().intValue())).getName());
+        }
+        return moduleInfoDTOIPage;
+    }
 }

+ 50 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionDetailFacade.java

@@ -1,9 +1,15 @@
 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 com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -35,4 +41,48 @@ public class QuestionDetailFacade extends QuestionDetailServiceImpl {
     public void saveBatchFac(List<QuestionDetail> list) {
         super.saveBatch(list);
     }
+
+
+    /**
+     * 根据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;
+    }
+
+
+
+    /**
+     * 根据id获取标签明细
+     *
+     * @param questionIds 标签ids
+     * @return 标签内容
+     */
+    public Map<Long, List<QuestionDetail>> getByQuestionIds(List<Long> questionIds) {
+        Map<Long, List<QuestionDetail>> map = new LinkedHashMap<>();
+        if (ListUtil.isEmpty(questionIds)) {
+            return map;
+        }
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.in("question_id", questionIds);
+        queryWrapper.orderByAsc("question_id", "order_no");
+        List<QuestionDetail> questionDetailList = this.list(queryWrapper);
+        if (ListUtil.isNotEmpty(questionDetailList)) {
+            map = EntityUtil.makeEntityListMap(questionDetailList, "questionId");
+        }
+        return map;
+    }
 }

+ 103 - 2
icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.GetQuestionInfoDTO;
+import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.CommonParam;
@@ -14,6 +15,7 @@ import com.diagbot.entity.ModuleInfo;
 import com.diagbot.entity.QuestionDetail;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.QuestionMapping;
+import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.entity.wrapper.QuestionMappingWrapper;
 import com.diagbot.entity.wrapper.QuestionWrapper;
 import com.diagbot.enums.IsDeleteEnum;
@@ -26,15 +28,18 @@ import com.diagbot.service.QuestionMappingService;
 import com.diagbot.service.impl.QuestionInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.GetQuestionInfoVO;
 import com.diagbot.vo.GetQuestionUsualByDeptVO;
+import com.diagbot.vo.QuestionIdsVO;
 import com.diagbot.vo.QuestionIndexVO;
 import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionSaveVO;
 import com.diagbot.vo.QuestionSpecVO;
+import com.diagbot.vo.QuestionVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
@@ -53,7 +58,7 @@ import java.util.stream.Collectors;
  * @time: 2018/11/23 11:37
  */
 @Component
-public class QuestionInfoFacade extends QuestionInfoServiceImpl {
+public class QuestionFacade extends QuestionInfoServiceImpl {
 
     @Autowired
     QuestionDetailFacade questionDetailFacade;
@@ -369,7 +374,7 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
         }
         List<String> personIds = res.getRecords().stream().map(row -> row.getModifier()).collect(Collectors.toList());
         RespDTO<Map<String, String>> mapRespDTO = userServiceClient.getUserInfoByIds(personIds);
-        if (mapRespDTO == null || !"0".equals(mapRespDTO.code)) {
+        if (mapRespDTO == null || !CommonErrorCode.OK.getCode().equals(mapRespDTO.code)) {
             throw new CommonException(CommonErrorCode.RPC_ERROR, "获取操作人失败");
         }
         for (QuestionPageDTO bean : res.getRecords()) {
@@ -502,4 +507,100 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
         List<GetQuestionInfoDTO> getQuestionInfoDTOList = this.getQuestionUsualsByDept(getQuestionUsualByDeptVO);
         return getQuestionInfoDTOList;
     }
+
+
+    /********************************************以下从icss项目拷贝过来*****************************************************/
+
+    /**
+     * 根据参数返回标签内容
+     *
+     * @param questionVO 获取标签内容参数
+     * @return 标签内容
+     */
+    public QuestionDTO getById(QuestionVO questionVO) {
+        Map paramMap = new HashMap<>();
+        paramMap.put("sexType", questionVO.getSexType());
+        paramMap.put("age", questionVO.getAge());
+        paramMap.put("id", questionVO.getId());
+        QuestionInfo questionInfo = this.getByParam(paramMap);
+        if (questionInfo == null) { //无数据直接返回,不通过报错的形式返回
+            return new QuestionDTO();
+        }
+        QuestionDTO res = new QuestionDTO();
+        BeanUtil.copyProperties(questionInfo, res);
+
+        //获取明细项
+        List<QuestionDetail> questionDetailList = questionDetailFacade.getByQuestionId(questionVO.getId());
+        res.setQuestionDetailList(questionDetailList);
+
+        //获取子标签
+        List<QuestionInfoWrapper> questionMapping = this.getByQuestionMapping(paramMap);
+        List<QuestionDTO> sonQuestionList = BeanUtil.listCopyTo(questionMapping, QuestionDTO.class);
+        res.setQuestionMapping(sonQuestionList);
+        //获取子标签的明细项
+        if (ListUtil.isNotEmpty(sonQuestionList)) {
+            Map paramMap1 = new HashMap<>();
+            paramMap1.put("sexType", questionVO.getSexType());
+            paramMap1.put("age", questionVO.getAge());
+            List<Long> sonQuestionIds = sonQuestionList.stream()
+                    .map(artist -> artist.getId())
+                    .collect(Collectors.toList());
+            Map<Long, List<QuestionDetail>> sonQuestionMap = questionDetailFacade.getByQuestionIds(sonQuestionIds);
+            paramMap1.put("ids", sonQuestionIds);
+            //获取第二级子标签
+            List<QuestionInfoWrapper> questionMapping1 = this.getByQuestionMapping(paramMap1);
+            Map<Long, List<QuestionInfoWrapper>> qm1 = EntityUtil.makeEntityListMap(questionMapping1, "parentQuestion");
+            for (QuestionDTO bean : sonQuestionList) {
+                List<QuestionDetail> questionDetailList1 = sonQuestionMap.get(bean.getId());
+                if (ListUtil.isEmpty(questionDetailList1)) {
+                    questionDetailList1 = new ArrayList<>();
+                }
+                bean.setQuestionDetailList(questionDetailList1);
+                List<QuestionDTO> sonQuestionList1 = new ArrayList<>();
+                if (ListUtil.isNotEmpty(qm1.get(bean.getId()))) {
+                    sonQuestionList1 = BeanUtil.listCopyTo(qm1.get(bean.getId()), QuestionDTO.class);
+                }
+                bean.setQuestionMapping(sonQuestionList1);
+
+                List<Long> sonQuestionIds1 = sonQuestionList1.stream()
+                        .map(artist -> artist.getId())
+                        .collect(Collectors.toList());
+                Map<Long, List<QuestionDetail>> sonQuestionMap1 = questionDetailFacade.getByQuestionIds(sonQuestionIds1);
+                for (QuestionDTO questionDTO : sonQuestionList1) {
+                    //获取二级子明细项
+                    List<QuestionDetail> questionDetailList2 = sonQuestionMap1.get(questionDTO.getId());
+                    if (ListUtil.isEmpty(questionDetailList2)) {
+                        questionDetailList2 = new ArrayList<>();
+                    }
+                    questionDTO.setQuestionDetailList(questionDetailList2);
+                }
+
+            }
+        }
+        return res;
+    }
+
+
+    /**
+     * 查询多个id返回标签内容
+     *
+     * @param questionIdsVO 获取标签内容参数
+     * @return 标签内容
+     */
+    public Map<Long, Object> getByIds(QuestionIdsVO questionIdsVO) {
+        Map<Long, Object> data = new HashMap<>();
+        if (StringUtil.isEmpty(questionIdsVO.getIds())) {
+            return data;
+        }
+        String[] ids = questionIdsVO.getIds().split(",");
+        for (String id : ids) {
+            QuestionVO questionVO = new QuestionVO();
+            questionVO.setId(Long.parseLong(id));
+            questionVO.setAge(questionIdsVO.getAge());
+            questionVO.setSexType(questionIdsVO.getSexType());
+            QuestionDTO item = this.getById(questionVO);
+            data.put(item.getId(), item);
+        }
+        return data;
+    }
 }

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

@@ -162,7 +162,7 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
             ids.add(getDeptInfoDTO.getModifier());
         }
         RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
-        if (respDTO == null || !"0".equals(respDTO.code)) {
+        if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
             throw new CommonException(CommonErrorCode.RPC_ERROR,
                     "获取用户信息失败");
         }

+ 22 - 23
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -1,26 +1,5 @@
 package com.diagbot.facade;
 
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import com.diagbot.util.ListUtil;
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
@@ -36,6 +15,7 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddTagRetrievalDetailVO;
@@ -43,6 +23,25 @@ import com.diagbot.vo.AddTagRetrievalVO;
 import com.diagbot.vo.DelRetrievalsByQuesIdVO;
 import com.diagbot.vo.GetRetrievalsByTagVO;
 import com.diagbot.vo.RetrievalListVO;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author rgb
@@ -55,7 +54,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     @Autowired
     private RetrievalMappingFacade retrievalMappingFacade;
     @Autowired
-    private QuestionInfoFacade questionInfoFacade;
+    private QuestionFacade questionFacade;
     @Autowired
     private UserServiceClient userServiceClient;
 
@@ -286,7 +285,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                             	List<String> questionNames = detailList.stream().map(i->i.getQuestionName()).distinct().collect(Collectors.toList());
                             	QueryWrapper<QuestionInfo> questionInfoQe = new QueryWrapper<>();
                             	questionInfoQe.in("tag_name",questionNames);
-                            	List<QuestionInfo> questionInfos = questionInfoFacade.list(questionInfoQe);
+                            	List<QuestionInfo> questionInfos = questionFacade.list(questionInfoQe);
                             	if(questionInfos.size()>0){
                             		Map<String,Long> questionIdMap = questionInfos.stream().collect(Collectors.toMap(QuestionInfo::getTagName, i->i.getId()));
                             		detailList.forEach(i->{

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

@@ -99,7 +99,7 @@ public class VersionDetailFacade extends VersionDetailServiceImpl {
         Map<String, String> userNames = new HashMap<>();
         if (modifierid.size() > 0) {
             RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
-            if (userNamesDTO == null || !"0".equals(userNamesDTO.code)) {
+            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                         "获取所有用户信息失败");
             }

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

@@ -73,7 +73,7 @@ public class VersionInfoFacade extends VersionInfoServiceImpl {
         Map<String, String> userNames = new HashMap<>();
         if (modifierid.size() > 0) {
             RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
-            if (userNamesDTO == null || !"0".equals(userNamesDTO.code)) {
+            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取所有用户信息失败");
             }
             userNames = userNamesDTO.data;

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

@@ -40,7 +40,7 @@ public class VitalOrderFacade extends VitalOrderServiceImpl {
     @Qualifier("vitalOrderServiceImpl")
     VitalOrderService vitalOrderService;
     @Autowired
-    QuestionInfoFacade questionInfoFacade;
+    QuestionFacade questionFacade;
     @Autowired
     UserServiceClient userServiceClient;
 
@@ -96,7 +96,7 @@ public class VitalOrderFacade extends VitalOrderServiceImpl {
         }
 
         //已排序查体标签
-        List<QuestionInfo> vitals = Lists.newArrayList(questionInfoFacade.listByIds(vitalIds));
+        List<QuestionInfo> vitals = Lists.newArrayList(questionFacade.listByIds(vitalIds));
         Map<Long, QuestionInfo> vitalMap = EntityUtil.makeEntityMap(vitals, "id");
 
         List<VitalInfoDTO> vitalInfoDTOList = Lists.newLinkedList();
@@ -117,7 +117,7 @@ public class VitalOrderFacade extends VitalOrderServiceImpl {
                 .eq("type", QuestionTypeEnum.Vital.getKey())
                 .eq("sub_type", 0)
                 .notIn("id", vitalIds);
-        List<QuestionInfo> unOrderVitals = questionInfoFacade.list(unOrderedVitalQueryWrapper);
+        List<QuestionInfo> unOrderVitals = questionFacade.list(unOrderedVitalQueryWrapper);
         List<QuestionShortDTO> unOrderedVitalList = Lists.newLinkedList();
         for (QuestionInfo questionInfo : unOrderVitals) {
             QuestionShortDTO questionShortDTO = new QuestionShortDTO();
@@ -147,7 +147,7 @@ public class VitalOrderFacade extends VitalOrderServiceImpl {
                 .eq("type", QuestionTypeEnum.Vital.getKey())
                 .eq("sub_type", 0)
                 .notIn("id", vitalIds);
-        List<QuestionInfo> vitals = questionInfoFacade.list(unOrderedVitalQueryWrapper);
+        List<QuestionInfo> vitals = questionFacade.list(unOrderedVitalQueryWrapper);
 
         List<QuestionShortDTO> questionShortDTOList = Lists.newLinkedList();
         for (QuestionInfo questionInfo : vitals) {

+ 11 - 0
icssman-service/src/main/java/com/diagbot/mapper/ModuleInfoMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.ModuleInfoListDTO;
 import com.diagbot.entity.ModuleInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.GetModuleInfoVO;
 
 import java.util.Map;
 
@@ -16,4 +19,12 @@ import java.util.Map;
 public interface ModuleInfoMapper extends BaseMapper<ModuleInfo> {
 
     public void deleteByIds(Map map);
+
+    /**
+     * 获取模板列表
+     *
+     * @param getModuleInfoVO
+     * @return
+     */
+    public IPage<ModuleInfoListDTO> getModuleInfoListByType(GetModuleInfoVO getModuleInfoVO);
 }

+ 17 - 2
icssman-service/src/main/java/com/diagbot/mapper/QuestionInfoMapper.java

@@ -2,15 +2,14 @@ package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.entity.QuestionInfo;
+import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.vo.GetQuestionInfoVO;
 import com.diagbot.vo.GetQuestionUsualByDeptVO;
 import com.diagbot.vo.ModuleGetQuestionInfoVO;
 import com.diagbot.vo.QuestionPageVO;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -25,6 +24,13 @@ import java.util.Map;
  */
 public interface QuestionInfoMapper extends BaseMapper<QuestionInfo> {
 
+    /**
+     *  根据参数获取标签信息
+     * @param map 参数
+     * @return
+     */
+    public QuestionInfo getByParam(Map map);
+
     public void deleteByIds(Map map);
 
     public List<QuestionInfo> index(Map map);
@@ -78,4 +84,13 @@ public interface QuestionInfoMapper extends BaseMapper<QuestionInfo> {
      */
     public IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO);
 
+
+
+    /**
+     *  根据questionMapping获取标签信息
+     * @param map 参数
+     * @return
+     */
+    public List<QuestionInfoWrapper> getByQuestionMapping(Map map);
+
 }

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

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.ModuleInfoListDTO;
 import com.diagbot.entity.ModuleInfo;
+import com.diagbot.vo.GetModuleInfoVO;
 
 import java.util.Map;
 
@@ -22,4 +25,12 @@ public interface ModuleInfoService extends IService<ModuleInfo> {
      * @return
      */
     public void deleteByIds(Map map);
+
+    /**
+     * 获取模板列表
+     *
+     * @param getModuleInfoVO
+     * @return
+     */
+    public IPage<ModuleInfoListDTO> getModuleInfoListByType(GetModuleInfoVO getModuleInfoVO);
 }

+ 19 - 0
icssman-service/src/main/java/com/diagbot/service/QuestionInfoService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.entity.QuestionInfo;
+import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.vo.GetQuestionInfoVO;
 import com.diagbot.vo.GetQuestionUsualByDeptVO;
 import com.diagbot.vo.ModuleGetQuestionInfoVO;
@@ -24,6 +25,15 @@ import java.util.Map;
 public interface QuestionInfoService extends IService<QuestionInfo> {
 
 
+    /**
+     * 根据参数获取标签信息
+     *
+     * @param map 参数
+     * @return
+     */
+    public QuestionInfo getByParam(Map map);
+
+
     /**
      * 根据id删除标签
      *
@@ -90,6 +100,15 @@ public interface QuestionInfoService extends IService<QuestionInfo> {
      * @return
      */
     public List<QuestionInfo> getParentQuestion(Long id);
+
+
+    /**
+     * 根据questionMapping获取标签信息
+     *
+     * @param map 参数
+     * @return
+     */
+    public List<QuestionInfoWrapper> getByQuestionMapping(Map map);
 }
 
 

+ 8 - 0
icssman-service/src/main/java/com/diagbot/service/impl/ModuleInfoServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.ModuleInfoListDTO;
 import com.diagbot.entity.ModuleInfo;
 import com.diagbot.mapper.ModuleInfoMapper;
 import com.diagbot.service.ModuleInfoService;
+import com.diagbot.vo.GetModuleInfoVO;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
@@ -23,4 +26,9 @@ public class ModuleInfoServiceImpl extends ServiceImpl<ModuleInfoMapper, ModuleI
     public void deleteByIds(Map map) {
         baseMapper.deleteByIds(map);
     }
+
+    @Override
+    public IPage<ModuleInfoListDTO> getModuleInfoListByType(GetModuleInfoVO getModuleInfoVO) {
+        return baseMapper.getModuleInfoListByType(getModuleInfoVO);
+    }
 }

+ 11 - 0
icssman-service/src/main/java/com/diagbot/service/impl/QuestionInfoServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.entity.QuestionInfo;
+import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.mapper.QuestionInfoMapper;
 import com.diagbot.service.QuestionInfoService;
 import com.diagbot.vo.GetQuestionInfoVO;
@@ -27,6 +28,11 @@ import java.util.Map;
 @Service
 public class QuestionInfoServiceImpl extends ServiceImpl<QuestionInfoMapper, QuestionInfo> implements QuestionInfoService {
 
+    @Override
+    public QuestionInfo getByParam(Map map) {
+        return baseMapper.getByParam(map);
+    }
+
     @Override
     public void deleteByIds(Map map) {
         baseMapper.deleteByIds(map);
@@ -62,6 +68,11 @@ public class QuestionInfoServiceImpl extends ServiceImpl<QuestionInfoMapper, Que
         return baseMapper.getParent(id);
     }
 
+    @Override
+    public List<QuestionInfoWrapper> getByQuestionMapping(Map map) {
+        return baseMapper.getByQuestionMapping(map);
+    }
+
     @Override
     public IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO) {
         return baseMapper.getList(questionPageVO);

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

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -10,7 +11,7 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class GetModuleInfoVO {
+public class GetModuleInfoVO extends Page {
     //模板类型
     private Integer type;
 }

+ 17 - 0
icssman-service/src/main/java/com/diagbot/vo/QuestionIdsVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2018/8/6 10:16
+ */
+@Getter
+@Setter
+public class QuestionIdsVO {
+    private String ids;
+    private Integer sexType;
+    private Integer age;
+}

+ 17 - 0
icssman-service/src/main/java/com/diagbot/vo/QuestionVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2018/8/6 10:16
+ */
+@Getter
+@Setter
+public class QuestionVO {
+    private Long id;
+    private Integer sexType;
+    private Integer age;
+}

+ 12 - 0
icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java

@@ -1,9 +1,11 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.ModuleInfoDTO;
+import com.diagbot.dto.ModuleInfoListDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ModuleInfoFacade;
 import com.diagbot.vo.AddModuleInfoVO;
@@ -96,4 +98,14 @@ public class ModuleInfoController {
         List<ModuleInfoDTO> date = moduleInfoFacade.getModuleInfo(getModuleInfoVO);
         return RespDTO.onSuc(date);
     }
+
+    @ApiOperation(value = "获取模板列表[by:wangyu]",
+            notes = "type: 模板类型,1:主诉模板 2:现病史模板 3:现病史空模板 4 : 其他史模板 5:嵌套模板 6:慢病模板<br>" +
+                    "<br>")
+    @PostMapping("/getModuleInfoList")
+    @SysLogger("getModuleInfoList")
+    public RespDTO<IPage<ModuleInfoListDTO>> getModuleInfoList(@Valid @RequestBody GetModuleInfoVO getModuleInfoVO) {
+        IPage<ModuleInfoListDTO> date = moduleInfoFacade.getModuleInfoList(getModuleInfoVO);
+        return RespDTO.onSuc(date);
+    }
 }

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

@@ -3,14 +3,17 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.QuestionInfo;
-import com.diagbot.facade.QuestionInfoFacade;
+import com.diagbot.facade.QuestionFacade;
+import com.diagbot.vo.QuestionIdsVO;
 import com.diagbot.vo.QuestionIndexVO;
 import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionSaveVO;
 import com.diagbot.vo.QuestionSpecVO;
+import com.diagbot.vo.QuestionVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -37,7 +41,7 @@ import java.util.List;
 public class QuestionInfoController {
 
     @Autowired
-    QuestionInfoFacade questionInfoFacade;
+    QuestionFacade questionFacade;
 
     @ApiOperation(value = "标签新增或更新[by:zhoutg]",
             notes = "")
@@ -45,7 +49,7 @@ public class QuestionInfoController {
     @SysLogger("saveOrUpdate")
     @Transactional
     public RespDTO<Boolean> saveOrUpdate(@RequestBody QuestionSaveVO questionSaveVO) {
-        questionInfoFacade.saveOrUpdate(questionSaveVO);
+        questionFacade.saveOrUpdate(questionSaveVO);
         return RespDTO.onSuc(true);
     }
 
@@ -55,7 +59,7 @@ public class QuestionInfoController {
     @PostMapping("/list")
     @SysLogger("list")
     public RespDTO<IPage<QuestionPageDTO>> list(@RequestBody QuestionPageVO questionPageVO) {
-        IPage<QuestionPageDTO> data = questionInfoFacade.getListFac(questionPageVO);
+        IPage<QuestionPageDTO> data = questionFacade.getListFac(questionPageVO);
         return RespDTO.onSuc(data);
     }
 
@@ -65,7 +69,7 @@ public class QuestionInfoController {
     @PostMapping("/index")
     @SysLogger("index")
     public RespDTO<List<QuestionInfo>> index(@RequestBody QuestionIndexVO questionIndexVO) {
-        List<QuestionInfo> data = questionInfoFacade.indexFac(questionIndexVO);
+        List<QuestionInfo> data = questionFacade.indexFac(questionIndexVO);
         return RespDTO.onSuc(data);
     }
 
@@ -75,7 +79,7 @@ public class QuestionInfoController {
     @PostMapping("/getSpecial")
     @SysLogger("getSpecial")
     public RespDTO<List<QuestionInfo>> getSpecial(@RequestBody QuestionSpecVO questionSpecVO) {
-        List<QuestionInfo> data = questionInfoFacade.getSpecialFac(questionSpecVO);
+        List<QuestionInfo> data = questionFacade.getSpecialFac(questionSpecVO);
         return RespDTO.onSuc(data);
     }
 
@@ -86,7 +90,29 @@ public class QuestionInfoController {
     @SysLogger("delete")
     @Transactional
     public RespDTO<Boolean> delete(String ids) {
-        questionInfoFacade.deleteByIdsFac(ids);
+        questionFacade.deleteByIdsFac(ids);
         return RespDTO.onSuc(true);
     }
+
+
+    @ApiOperation(value = "根据参数返回标签内容[by:zhoutg]",
+            notes = "id: questionId<br>" +
+                    "sexType:性别,1:男,2:女<br>" +
+                    "age:年龄")
+    @PostMapping("/getById")
+    public RespDTO<QuestionDTO> getById(@RequestBody QuestionVO questionVO) {
+        QuestionDTO data = questionFacade.getById(questionVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    @ApiOperation(value = "查询多个id返回标签内容[by:zhoutg]",
+            notes = "ids: 多个questionId<br>" +
+                    "sexType:性别,1:男,2:女<br>" +
+                    "age:年龄")
+    @PostMapping("/getByIds")
+    public RespDTO<Map<Long, Object>> getByIds(@RequestBody QuestionIdsVO questionIdsVO) {
+        Map<Long, Object> data = questionFacade.getByIds(questionIdsVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 4 - 4
icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java

@@ -8,7 +8,7 @@ import com.diagbot.dto.GetDeptInfoDTO;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.DeptInfoFacade;
-import com.diagbot.facade.QuestionInfoFacade;
+import com.diagbot.facade.QuestionFacade;
 import com.diagbot.facade.QuestionUsualFacade;
 import com.diagbot.vo.DeleteQuestionUsualVO;
 import com.diagbot.vo.GetDeptInfoVO;
@@ -46,7 +46,7 @@ public class QuestionUsualController {
     @Autowired
     private DeptInfoFacade deptInfoFacade;
     @Autowired
-    private QuestionInfoFacade questionInfoFacade;
+    private QuestionFacade questionFacade;
 
     @ApiOperation(value = "常用标签维护——添加和修改[by:wangyu]",
             notes = "deptCode: 科室编号,必填<br>" +
@@ -85,7 +85,7 @@ public class QuestionUsualController {
     @PostMapping("/getQuestionInfo")
     @SysLogger("getQuestionInfo")
     public RespDTO<List<GetQuestionInfoDTO>> getQuestionInfo(@Valid @RequestBody GetQuestionInfoVO getQuestionInfoVO) {
-        List<GetQuestionInfoDTO> data = questionInfoFacade.getQuestiongInfosByName(getQuestionInfoVO);
+        List<GetQuestionInfoDTO> data = questionFacade.getQuestiongInfosByName(getQuestionInfoVO);
         return RespDTO.onSuc(data);
     }
 
@@ -94,7 +94,7 @@ public class QuestionUsualController {
     @PostMapping("/getQuestionUsualByDept")
     @SysLogger("getQuestionUsualByDept")
     public RespDTO<List<GetQuestionInfoDTO>> getQuestionUsualByDept(@Valid @RequestBody GetQuestionUsualByDeptVO getQuestionUsualByDeptVO) {
-        List<GetQuestionInfoDTO> data = questionInfoFacade.getQuestionUsualByDept(getQuestionUsualByDeptVO);
+        List<GetQuestionInfoDTO> data = questionFacade.getQuestionUsualByDept(getQuestionUsualByDeptVO);
         return RespDTO.onSuc(data);
     }
 

+ 8 - 0
icssman-service/src/main/resources/mapper/ModuleInfoMapper.xml

@@ -24,4 +24,12 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="getModuleInfoListByType" resultType="com.diagbot.dto.ModuleInfoListDTO">
+        SELECT * FROM `icss_module_info` WHERE is_deleted = 'N'
+        <if test="type != null and type != ''">
+            and type = #{type}
+        </if>
+        order by gmt_modified desc
+    </select>
 </mapper>

+ 39 - 0
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -182,4 +182,43 @@
         and b.son_question = #{id}
     </select>
 
+
+    <select id="getByQuestionMapping" parameterType="java.util.Map" resultType="com.diagbot.entity.wrapper.QuestionInfoWrapper">
+        select t.*, m.parent_question, m.position, m.form_position , m.exclusion_type, m.symptom_type 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
+        <if test="id != null">
+            and m.parent_question = #{id}
+        </if>
+        <if test="ids != null and ids.size > 0">
+            <foreach item="myId" collection="ids" open="and(" separator="or" close=")" >
+                m.parent_question = #{myId}
+            </foreach>
+        </if>
+        <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>
+        <if test="id != null">
+            order by m.order_no
+        </if>
+        <if test="ids != null and ids.size > 0">
+            order by m.parent_question, m.order_no
+        </if>
+    </select>
+
+
+    <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 != ''">
+            and sex_type in (3, #{sexType})
+        </if>
+        <if test="age != null and age != ''">
+            <![CDATA[ and age_begin <= #{age} ]]>
+            <![CDATA[ and age_end >= #{age} ]]>
+        </if>
+    </select>
 </mapper>