kongwz 3 роки тому
батько
коміт
280e2475d9

+ 19 - 0
src/main/java/com/diagbot/dto/DiagnoseRecordDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @className: com.diagbot.dto-> DiagnoseRecordDTO
+ * @description: 校验过后,都是标准词的诊断依据记录
+ * @author: kongwz
+ * @createDate: 2021-08-26 14:01
+ * @version: 1.0
+ * @todo:
+ */
+@Data
+public class DiagnoseRecordDTO extends ExportDiagnoseDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String diseaseName;
+}

+ 2 - 2
src/main/java/com/diagbot/dto/ExportDiagnoseDTO.java

@@ -29,13 +29,13 @@ public class ExportDiagnoseDTO implements Serializable {
     @Excel(name="最大值", width = 10, orderNum = "50")
     private String max;
     @Excel(name="最大值符号", width = 10, orderNum = "60")
-    private String unit;
+    private String minSymbol;
     @Excel(name="最小值", width = 10, orderNum = "70")
     private String min;
     @Excel(name="最小值符号", width = 10, orderNum = "80")
     private String maxSymbol;
     @Excel(name="单位", width = 10, orderNum = "90")
-    private String minSymbol;
+    private String unit;
     @Excel(name="关联词", width = 30, orderNum = "35")
     private String relation;
     @Excel(name="校验", width = 50, orderNum = "33")

+ 25 - 5
src/main/java/com/diagbot/facade/KlDiagnoseDetailFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.DiagnoseRecordDTO;
 import com.diagbot.dto.ExportDescDTO;
 import com.diagbot.dto.ExportDiagnoseDTO;
 import com.diagbot.dto.ExportDiagnoseNameDTO;
@@ -10,6 +11,7 @@ import com.diagbot.enums.CommonEnum;
 import com.diagbot.enums.DiagnoseLexiconTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.KlDiagnoseDetailService;
+import com.diagbot.service.KlDiagnoseRecordService;
 import com.diagbot.service.KlLibraryInfoService;
 import com.diagbot.util.*;
 import com.google.common.collect.Lists;
@@ -46,16 +48,22 @@ public class KlDiagnoseDetailFacade {
     @Qualifier("klDiagnoseDetailServiceImpl")
     private KlDiagnoseDetailService klDiagnoseDetailService;
 
+    @Autowired
+    @Qualifier("klDiagnoseRecordServiceImpl")
+    KlDiagnoseRecordService klDiagnoseRecordService;
+
     /**
      * 导出诊断依据【初版】
      */
     public void exportDiagnose(HttpServletResponse response) {
+
         // 获取全部数据、分组
-        List<KlDiagnoseDetail> klDiagnoseDetailList = klDiagnoseDetailService.list(new QueryWrapper<KlDiagnoseDetail>()
-//                .eq("dis_name", "急性化脓性扁桃体炎")
-                .eq("is_deleted", IsDeleteEnum.N.getKey()));
-        Map<String, List<KlDiagnoseDetail>> diagnoseDetailMap = EntityUtil.makeEntityListMap(klDiagnoseDetailList, "disName");
-        Map<String, List<ExportDiagnoseDTO>> diagnoseDetails = processDiagnoseDetail(diagnoseDetailMap);
+//        List<KlDiagnoseDetail> klDiagnoseDetailList = klDiagnoseDetailService.list(new QueryWrapper<KlDiagnoseDetail>()
+////                .eq("dis_name", "急性化脓性扁桃体炎")
+//                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+//        Map<String, List<KlDiagnoseDetail>> diagnoseDetailMap = EntityUtil.makeEntityListMap(klDiagnoseDetailList, "disName");
+//        Map<String, List<ExportDiagnoseDTO>> diagnoseDetails = processDiagnoseDetail(diagnoseDetailMap);
+        Map<String, List<ExportDiagnoseDTO>> diagnoseDetails = exportDiagnoseRecord();
         List<ExportDiagnoseDTO> res = new ArrayList<>();
         for (String disName : diagnoseDetails.keySet()) {
             ExportDiagnoseDTO exportDiagnoseDTO = new ExportDiagnoseDTO();
@@ -101,6 +109,18 @@ public class KlDiagnoseDetailFacade {
         ExcelUtils.exportExcel(exportDto, "diagnose.xlsx", response);
     }
 
+    public Map<String, List<ExportDiagnoseDTO>> exportDiagnoseRecord() {
+        List<DiagnoseRecordDTO> diagnoseRecord = klDiagnoseRecordService.getDiagnoseRecord();
+        Map<String, List<DiagnoseRecordDTO>> diseaseRecordMap = EntityUtil.makeEntityListMap(diagnoseRecord, "diseaseName");
+        Map<String, List<ExportDiagnoseDTO>> diagnoseDetails = new HashMap<>();
+        diseaseRecordMap.forEach((x,y) -> diagnoseDetails.put(x,y.stream().map(z ->{
+            ExportDiagnoseDTO exportDiagnoseDTO = new ExportDiagnoseDTO();
+            BeanUtil.copyProperties(z,exportDiagnoseDTO);
+            return exportDiagnoseDTO;
+        }).collect(Collectors.toList())));
+        return diagnoseDetails;
+    }
+
 
     public Map<String, List<ExportDiagnoseDTO>> processDiagnoseDetail(Map<String, List<KlDiagnoseDetail>> diagnoseDetailMap) {
         Map<String, List<ExportDiagnoseDTO>> data = new LinkedHashMap<>();

+ 6 - 0
src/main/java/com/diagbot/mapper/KlDiagnoseRecordMapper.java

@@ -1,8 +1,12 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.DiagnoseRecordDTO;
+import com.diagbot.dto.ExportDiagnoseDTO;
 import com.diagbot.entity.KlDiagnoseRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 诊断依据记录表 Mapper 接口
@@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KlDiagnoseRecordMapper extends BaseMapper<KlDiagnoseRecord> {
 
+    List<DiagnoseRecordDTO> getDiagnoseRecord();
+
 }

+ 5 - 0
src/main/java/com/diagbot/service/KlDiagnoseRecordService.java

@@ -1,8 +1,12 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.DiagnoseRecordDTO;
+import com.diagbot.dto.ExportDiagnoseDTO;
 import com.diagbot.entity.KlDiagnoseRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 诊断依据记录表 服务类
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface KlDiagnoseRecordService extends IService<KlDiagnoseRecord> {
 
+    List<DiagnoseRecordDTO> getDiagnoseRecord();
 }

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

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.DiagnoseRecordDTO;
+import com.diagbot.dto.ExportDiagnoseDTO;
 import com.diagbot.entity.KlDiagnoseRecord;
 import com.diagbot.mapper.KlDiagnoseRecordMapper;
 import com.diagbot.service.KlDiagnoseRecordService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 诊断依据记录表 服务实现类
@@ -17,4 +21,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class KlDiagnoseRecordServiceImpl extends ServiceImpl<KlDiagnoseRecordMapper, KlDiagnoseRecord> implements KlDiagnoseRecordService {
 
+    @Override
+    public List<DiagnoseRecordDTO> getDiagnoseRecord() {
+        return baseMapper.getDiagnoseRecord();
+    }
 }

+ 69 - 19
src/main/resources/mapper/KlDiagnoseRecordMapper.xml

@@ -4,25 +4,75 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDiagnoseRecord">
-        <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="diagnose_id" property="diagnoseId" />
-        <result column="type" property="type" />
-        <result column="code" property="code" />
-        <result column="rule" property="rule" />
-        <result column="desc" property="description" />
-        <result column="eq_operator" property="eqValue" />
-        <result column="max_value" property="maxValue" />
-        <result column="max_operator" property="maxOperator" />
-        <result column="min_value" property="minValue" />
-        <result column="min_operator" property="minOperator" />
-        <result column="unit" property="unit" />
-        <result column="order_no" property="orderNo" />
-        <result column="remark" property="remark" />
+        <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="diagnose_id" property="diagnoseId"/>
+        <result column="type" property="type"/>
+        <result column="code" property="code"/>
+        <result column="rule" property="rule"/>
+        <result column="desc" property="description"/>
+        <result column="eq_operator" property="eqValue"/>
+        <result column="max_value" property="maxValue"/>
+        <result column="max_operator" property="maxOperator"/>
+        <result column="min_value" property="minValue"/>
+        <result column="min_operator" property="minOperator"/>
+        <result column="unit" property="unit"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="remark" property="remark"/>
     </resultMap>
 
+    <select id="getDiagnoseRecord" resultType="com.diagbot.dto.DiagnoseRecordDTO">
+        SELECT
+	k3.lib_name AS diseaseName,
+	kdr.type AS type,
+	kdr.`code` AS orderNo,
+	IFNULL(k2.rule, kdr.rule) AS rule,
+	kdr.description AS relation,
+	kdr.eq_value AS eq,
+	kdr.max_value AS max,
+	kdr.max_operator AS maxSymbol,
+	kdr.min_value AS min,
+	kdr.min_operator AS minSymbol,
+	kdr.unit AS unit
+FROM
+	kl_diagnose_record kdr
+LEFT JOIN (
+	SELECT
+		k1.diagnose_record_id,
+		GROUP_CONCAT(
+			k1.lib_name
+			ORDER BY
+				order_no SEPARATOR '#'
+		) rule
+	FROM
+		(
+			SELECT
+				kdrd.diagnose_record_id,
+				kdrd.concept_id,
+				kc.lib_name,
+				kdrd.order_no
+			FROM
+				`kl_diagnose_record_detail` kdrd
+			LEFT JOIN kl_concept kc ON kdrd.concept_id = kc.id
+			WHERE
+				kc.is_deleted = 'N'
+			AND kc.`status` = 1
+		) k1
+	GROUP BY
+		k1.diagnose_record_id
+) k2 ON kdr.id = k2.diagnose_record_id
+LEFT JOIN kl_diagnose kd ON kdr.diagnose_id = kd.id
+LEFT JOIN kl_concept k3 ON kd.concept_id = k3.id
+WHERE
+	k3.is_deleted = 'N'
+AND k3.`status` = 1
+AND kd. STATUS = 1
+ORDER BY
+	kdr.order_no;
+    </select>
+
 </mapper>