Browse Source

feat: 新增获取指定报告的指标分类接口

xdd 1 tuần trước cách đây
mục cha
commit
3a29dc6e1c

+ 8 - 0
fs-admin/src/main/java/com/fs/medical/ReportIndicatorResultController.java

@@ -4,6 +4,7 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.R;
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import com.github.pagehelper.PageHelper;
@@ -47,6 +48,13 @@ public class ReportIndicatorResultController extends BaseController {
         }
     }
 
+    @ApiOperation("获取指定报告的指标分类")
+    @GetMapping("/getAllCateByReportId")
+    public R getAllIndicatorByReportId(@RequestParam("reportId") Long reportId) {
+        List<ReportAllIndicatorCateDTO> allIndicatorByReportId = reportIndicatorResultService.getAllIndicatorByReportId(reportId);
+        return R.ok().put("data",allIndicatorByReportId);
+    }
+
     /**
      * 分页查询报告指标检查结果列表(带筛选)
      */

+ 5 - 0
fs-service/src/main/java/com/fs/medical/domain/ReportIndicatorResult.java

@@ -79,4 +79,9 @@ public class ReportIndicatorResult {
      * 更新时间
      */
     private LocalDateTime updateTime;
+
+    /**
+     * 指标分类id
+     */
+    private Long indicatorCateId;
 }

+ 17 - 0
fs-service/src/main/java/com/fs/medical/dto/ReportAllIndicatorCateDTO.java

@@ -0,0 +1,17 @@
+package com.fs.medical.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ReportAllIndicatorCateDTO implements Serializable {
+    /**
+     * 分类ID
+     */
+    private Long cateId;
+    /**
+     * 分类名称
+     */
+    private String cateName;
+}

+ 7 - 2
fs-service/src/main/java/com/fs/medical/mapper/ReportIndicatorResultMapper.java

@@ -1,6 +1,7 @@
 package com.fs.medical.mapper;
 
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import org.apache.ibatis.annotations.*;
 import java.util.List;
@@ -40,8 +41,8 @@ public interface ReportIndicatorResultMapper {
     /**
      * 新增检查结果
      */
-    @Insert("INSERT INTO fs_report_indicator_result(report_id, indicator_id, test_value, test_result, is_abnormal, abnormal_type, remarks) " +
-            "VALUES(#{reportId}, #{indicatorId}, #{testValue}, #{testResult}, #{isAbnormal}, #{abnormalType}, #{remarks})")
+    @Insert("INSERT INTO fs_report_indicator_result(report_id, indicator_id, test_value, test_result, is_abnormal, abnormal_type, remarks,indicator_cate_id) " +
+            "VALUES(#{reportId}, #{indicatorId}, #{testValue}, #{testResult}, #{isAbnormal}, #{abnormalType}, #{remarks},#{indicatorCateId})")
     @Options(useGeneratedKeys = true, keyProperty = "resultId")
     int insert(ReportIndicatorResult result);
 
@@ -57,6 +58,7 @@ public interface ReportIndicatorResultMapper {
             "<if test='isAbnormal != null'>is_abnormal = #{isAbnormal}, </if>" +
             "<if test='abnormalType != null'>abnormal_type = #{abnormalType}, </if>" +
             "<if test='remarks != null'>remarks = #{remarks}, </if>" +
+            "<if test='indicatorCateId != null'>indicator_cate_id = #{indicatorCateId}, </if>" +
             "update_time = NOW() " +
             "WHERE result_id = #{resultId}" +
             "</script>")
@@ -109,4 +111,7 @@ public interface ReportIndicatorResultMapper {
             "</choose>" +
             "</script>")
     List<ReportIndicatorResult> selectPageList(ReportIndicatorResultQueryDto queryDto);
+
+    @Select("select distinct indicator_cate_id as cate_id from fs_report_indicator_result where report_id=#{reportId}")
+    List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(@Param("reportId") Long reportId);
 }

+ 5 - 1
fs-service/src/main/java/com/fs/medical/service/ReportIndicatorResultService.java

@@ -1,6 +1,7 @@
 package com.fs.medical.service;
 
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import java.util.List;
 
@@ -43,4 +44,7 @@ public interface ReportIndicatorResultService {
      * 分页查询报告指标检查结果列表
      */
     List<ReportIndicatorResult> selectPageList(ReportIndicatorResultQueryDto queryDto);
-}
+
+    List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(Long reportId);
+
+}

+ 28 - 1
fs-service/src/main/java/com/fs/medical/service/impl/ReportIndicatorResultServiceImpl.java

@@ -1,12 +1,19 @@
 package com.fs.medical.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fs.common.utils.DictUtils;
+import com.fs.common.utils.StringUtils;
+import com.fs.medical.domain.MedicalIndicator;
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
+import com.fs.medical.mapper.MedicalIndicatorMapper;
 import com.fs.medical.mapper.ReportIndicatorResultMapper;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -18,6 +25,9 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
     @Autowired
     private ReportIndicatorResultMapper reportIndicatorResultMapper;
 
+    @Autowired
+    private MedicalIndicatorMapper medicalIndicatorMapper;
+
     @Override
     public ReportIndicatorResult getById(Long resultId) {
         return reportIndicatorResultMapper.getById(resultId);
@@ -35,6 +45,14 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
 
     @Override
     public boolean save(ReportIndicatorResult result) {
+
+        MedicalIndicator byId = medicalIndicatorMapper.getById(result.getIndicatorId());
+        if(ObjectUtils.isNotNull(byId)){
+            String indicatorCategory = byId.getIndicatorCategory();
+            if(StringUtils.isNotBlank(indicatorCategory)){
+                result.setIndicatorCateId(Long.valueOf(indicatorCategory));
+            }
+        }
         return reportIndicatorResultMapper.insert(result) > 0;
     }
 
@@ -52,4 +70,13 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
     public List<ReportIndicatorResult> selectPageList(ReportIndicatorResultQueryDto queryDto) {
         return reportIndicatorResultMapper.selectPageList(queryDto);
     }
-}
+
+    @Override
+    public List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(Long reportId) {
+        List<ReportAllIndicatorCateDTO> allIndicatorByReportId = reportIndicatorResultMapper.getAllIndicatorByReportId(reportId);
+        for (ReportAllIndicatorCateDTO item : allIndicatorByReportId) {
+            item.setCateName(DictUtils.getDictLabel("user_custom_type", String.valueOf(item.getCateId())));
+        }
+        return allIndicatorByReportId;
+    }
+}

+ 8 - 0
fs-user-app/src/main/java/com/fs/app/controller/medical/ReportIndicatorResultController.java

@@ -6,6 +6,7 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import com.github.pagehelper.PageHelper;
@@ -121,6 +122,13 @@ public class ReportIndicatorResultController extends AppBaseController {
         }
     }
 
+
+    @ApiOperation("获取指定报告的指标分类")
+    @GetMapping("/getAllCateByReportId")
+    public R getAllIndicatorByReportId(@RequestParam("reportId") Long reportId) {
+        List<ReportAllIndicatorCateDTO> allIndicatorByReportId = reportIndicatorResultService.getAllIndicatorByReportId(reportId);
+        return R.ok().put("data",allIndicatorByReportId);
+    }
     /**
      * 批量新增检查结果
      */