Browse Source

复制前端的根据id获取标签内容

zhoutg 6 years ago
parent
commit
26373799bd
18 changed files with 417 additions and 54 deletions
  1. 44 0
      icssman-service/src/main/java/com/diagbot/dto/QuestionDTO.java
  2. 25 0
      icssman-service/src/main/java/com/diagbot/entity/wrapper/QuestionInfoWrapper.java
  3. 4 4
      icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java
  4. 4 4
      icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  5. 3 3
      icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java
  6. 2 2
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  7. 50 0
      icssman-service/src/main/java/com/diagbot/facade/QuestionDetailFacade.java
  8. 102 1
      icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java
  9. 22 23
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  10. 4 4
      icssman-service/src/main/java/com/diagbot/facade/VitalOrderFacade.java
  11. 17 2
      icssman-service/src/main/java/com/diagbot/mapper/QuestionInfoMapper.java
  12. 19 0
      icssman-service/src/main/java/com/diagbot/service/QuestionInfoService.java
  13. 11 0
      icssman-service/src/main/java/com/diagbot/service/impl/QuestionInfoServiceImpl.java
  14. 17 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionIdsVO.java
  15. 17 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionVO.java
  16. 33 7
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  17. 4 4
      icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java
  18. 39 0
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

+ 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;//备注
+}

+ 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();

+ 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());
         }

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

@@ -40,7 +40,7 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
     @Autowired
     ModuleDetailFacade moduleDetailFacade;
     @Autowired
-    QuestionInfoFacade questionInfoFacade;
+    QuestionFacade questionFacade;
 
     /**
      * 根据id删除标签模板
@@ -122,7 +122,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;
     }
 

+ 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;
+    }
 }

+ 102 - 1
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;
@@ -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;
+    }
 }

+ 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->{

+ 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) {

+ 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);
+
 }

+ 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);
 }
 
 

+ 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);

+ 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;
+}

+ 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);
     }
 

+ 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>