Bläddra i källkod

Merge branch 'dev/20200426_2nd' into debug

zhoutg 5 år sedan
förälder
incheckning
14357dc482

+ 1 - 1
src/main/java/com/diagbot/dto/MsgDTO.java

@@ -38,5 +38,5 @@ public class MsgDTO {
     // 条目ID
     private Long casesEntryId;
     // 条目id对应页面数据的key值
-    private List<String> pageKeyList = new ArrayList<>();
+    private List<Long> pageKeyList = new ArrayList<>();
 }

+ 17 - 0
src/main/java/com/diagbot/dto/QuestionEntryDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 返回标签和质控条目的映射内容
+ * @Author: ztg
+ * @Date: 2018/10/24 16:11
+ */
+@Getter
+@Setter
+public class QuestionEntryDTO {
+
+    private Long id;// id
+    private Long casesEntryId;//casesEntryId
+}

+ 18 - 16
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -16,6 +16,7 @@ import com.diagbot.dto.QcCasesEntryDTO;
 import com.diagbot.dto.QcModeDTO;
 import com.diagbot.dto.QcResultApiDTO;
 import com.diagbot.dto.QcResultDTO;
+import com.diagbot.dto.QuestionEntryDTO;
 import com.diagbot.dto.RecordContentDTO;
 import com.diagbot.dto.Response;
 import com.diagbot.entity.BehospitalInfo;
@@ -97,6 +98,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     QcCasesEntryPagedataFacade qcCasesEntryPagedataFacade;
     @Value("${encrypt.enable}")
     Boolean encryptFlag;
+    @Autowired
+    QcQuestionFacade qcQuestionFacade;
 
     public IPage<BehospitalInfoDTO> pageFac(BehospitalPageVO behospitalPageVO) {
         //入参验证
@@ -169,22 +172,21 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             AnalyzeVO analyzeVO = new AnalyzeVO();
             BeanUtil.copyProperties(getDetailVO, analyzeVO);
             List<MsgDTO> msgDTOList = getMsg(analyzeVO);
-            // 前端直接匹配,不从数据库获取
-//            List<Long> caseEntryId = msgDTOList.stream().map(r -> r.getCasesEntryId()).collect(Collectors.toList());
-//            if (ListUtil.isNotEmpty(caseEntryId)) {
-//                List<QcCasesEntryPagedata> qcCasesEntryPagedataList = qcCasesEntryPagedataFacade.list(new QueryWrapper<QcCasesEntryPagedata>()
-//                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-//                        .eq("hospital_id", hospitalId)
-//                        .in("cases_entry_id", caseEntryId)
-//                );
-//                Map<Long, List<QcCasesEntryPagedata>> pageKey = EntityUtil.makeEntityListMap(qcCasesEntryPagedataList, "casesEntryId");
-//                for (MsgDTO msgDTO : msgDTOList) {
-//                    List<QcCasesEntryPagedata> pagedata = pageKey.get(msgDTO.getCasesEntryId());
-//                    if (ListUtil.isNotEmpty(pagedata)) {
-//                        msgDTO.setPageKeyList(pagedata.stream().map(r -> r.getPageKey()).collect(Collectors.toList()));
-//                    }
-//                }
-//            }
+            if (ListUtil.isNotEmpty(msgDTOList)) {
+
+            }
+            // 从qc_question_info的cases_entry_ids获取
+            Map<String, Object> paramMap = new HashMap<>();
+            paramMap.put("hospitalId", hospitalId);
+            paramMap.put("casesEntryIds", msgDTOList.stream().map(r -> r.getCasesEntryId()).collect(Collectors.toList()));
+            Map<Long, List<QuestionEntryDTO>> quesEntryMap = qcQuestionFacade.getByCaseEntryIdsFac(paramMap);
+            for (MsgDTO msgDTO : msgDTOList) {
+                if (quesEntryMap.get(msgDTO.getCasesEntryId()) != null) {
+                    msgDTO.setPageKeyList(quesEntryMap.get(msgDTO.getCasesEntryId())
+                            .stream().map(r -> r.getId()).collect(Collectors.toList()));
+                }
+            }
+            // 根据模块分组
             Map<String, List<MsgDTO>> msgMap = EntityUtil.makeEntityListMap(msgDTOList, "modelName");
             res.put("msg", msgMap);
         }

+ 7 - 0
src/main/java/com/diagbot/facade/QcQuestionFacade.java

@@ -2,11 +2,13 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.QuestionDTO;
+import com.diagbot.dto.QuestionEntryDTO;
 import com.diagbot.entity.QcQuestionInfo;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.QcQuestionInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.QuestionIdsVO;
 import org.springframework.stereotype.Component;
@@ -71,4 +73,9 @@ public class QcQuestionFacade extends QcQuestionInfoServiceImpl {
         }
         return data;
     }
+
+    public Map<Long, List<QuestionEntryDTO>> getByCaseEntryIdsFac(Map map) {
+        List<QuestionEntryDTO> questionEntryDTOList = this.getByCaseEntryIds(map);
+        return  EntityUtil.makeEntityListMap(questionEntryDTOList, "casesEntryId");
+    }
 }

+ 3 - 0
src/main/java/com/diagbot/mapper/QcQuestionInfoMapper.java

@@ -1,6 +1,7 @@
 package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.QuestionEntryDTO;
 import com.diagbot.entity.QcQuestionInfo;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 
@@ -19,4 +20,6 @@ public interface QcQuestionInfoMapper extends BaseMapper<QcQuestionInfo> {
 
     public List<QuestionInfoWrapper> getByQuestionMapping(Map map);
 
+    public List<QuestionEntryDTO> getByCaseEntryIds(Map map);
+
 }

+ 2 - 0
src/main/java/com/diagbot/service/QcQuestionInfoService.java

@@ -1,6 +1,7 @@
 package com.diagbot.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.QuestionEntryDTO;
 import com.diagbot.entity.QcQuestionInfo;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 
@@ -25,4 +26,5 @@ public interface QcQuestionInfoService extends IService<QcQuestionInfo> {
      */
     public List<QuestionInfoWrapper> getByQuestionMapping(Map map);
 
+    public List<QuestionEntryDTO> getByCaseEntryIds(Map map);
 }

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

@@ -1,6 +1,7 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.QuestionEntryDTO;
 import com.diagbot.entity.QcQuestionInfo;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.mapper.QcQuestionInfoMapper;
@@ -25,4 +26,9 @@ public class QcQuestionInfoServiceImpl extends ServiceImpl<QcQuestionInfoMapper,
     public List<QuestionInfoWrapper> getByQuestionMapping(Map map) {
         return baseMapper.getByQuestionMapping(map);
     }
+
+    @Override
+    public List<QuestionEntryDTO> getByCaseEntryIds(Map map) {
+        return baseMapper.getByCaseEntryIds(map);
+    }
 }

+ 24 - 0
src/main/resources/mapper/QcQuestionInfoMapper.xml

@@ -43,4 +43,28 @@
             order by m.parent_question, m.order_no
         </if>
     </select>
+
+    <select id="getByCaseEntryIds" resultType="com.diagbot.dto.QuestionEntryDTO">
+        select * from (
+        select a.id,substring_index(substring_index(a.cases_entry_ids,',',b.help_topic_id+1),',',-1) cases_entry_id
+        from
+        qc_question_info a
+        join
+        <![CDATA[
+            mysql.help_topic b
+            on b.help_topic_id < (length(a.cases_entry_ids) - length(replace(a.cases_entry_ids,',',''))+1)
+        ]]>
+        where a.is_deleted = 'N'
+        <if test="hospitalId != null">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        order by a.ID) t
+        where t.cases_entry_id != ''
+        <if test="casesEntryIds != null and casesEntryIds.size > 0">
+            and t.cases_entry_id in
+            <foreach  collection="casesEntryIds" item="item" open="("  separator=","  close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>