Переглянути джерело

lis获取机构接口修改为使用分页

陈长荣 3 тижнів тому
батько
коміт
8e32153050

+ 4 - 3
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/config/OpenApiConfig.java

@@ -16,8 +16,9 @@ public class OpenApiConfig {
     public OpenAPI customOpenAPI() {
         return new OpenAPI()
                 .info(new Info()
-                        .title("基因定制 API文档")
-                        .version("1.0.0")
-                        .description("基因定制:动物品系定制、动物品系净化扩繁"));
+                        .title("基因定制 & 样本送检  API")
+                        .version("2.0.0")
+                        .version("2.0.0")
+                        .description("基因定制:动物品系定制、动物品系净化扩繁<br>样本送检:病理样本检测、动物样本检测、动物影像检测、宠物食品检测"));
     }
 }

+ 16 - 2
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/lis/config/LisDb.java

@@ -37,17 +37,31 @@ public class LisDb {
 
     /**
      * 查询
+     *
      * @param sql
      * @return
      */
     @SneakyThrows
-    public List<Entity> query (String sql) {
-        log.info("【LIS查询】:\n{}", SqlFormatter.format(sql));
+    public List<Entity> query(String sql) {
+        log.info("【LIS查询列表】:\n{}", SqlFormatter.format(sql));
         return getDb().query(sql);
     }
 
+    /**
+     * 查询单条记录
+     *
+     * @param sql
+     * @return
+     */
+    @SneakyThrows
+    public Entity queryOne(String sql) {
+        log.info("【LIS查询单条】:\n{}", SqlFormatter.format(sql));
+        return getDb().queryOne(sql);
+    }
+
     /**
      * 执行,用事务方式执行
+     *
      * @param consumer
      */
     @SneakyThrows

+ 24 - 10
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/lis/controller/SampleLisController.java

@@ -2,12 +2,14 @@ package com.github.jfcloud.gene.lis.controller;
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.db.Entity;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
 import com.github.jfcloud.common.annotation.WebApiLog;
 import com.github.jfcloud.common.core.util.R;
 import com.github.jfcloud.gene.lis.config.LisDb;
 import com.github.jfcloud.gene.lis.constants.LisDictType;
 import com.github.jfcloud.gene.lis.vo.CheckItem;
-import com.github.jfcloud.gene.lis.vo.DeptItem;
+import com.github.jfcloud.gene.lis.vo.DepItem;
 import com.github.jfcloud.gene.lis.vo.DeptUserItem;
 import com.github.jfcloud.gene.lis.vo.DictItem;
 import io.swagger.v3.oas.annotations.Operation;
@@ -53,20 +55,32 @@ public class SampleLisController {
 
     @Operation(summary = "获取机构")
     @GetMapping("/dep")
-    public R<List<DeptItem>> getLisDept(@RequestParam(required = false) String name) {
-        String sql = "select dep.id, dep.name, dict.sub_class_name as dep_name from dbo.HT_INFO_DEP dep " +
+    public R<Page<DepItem>> getLisDept(@RequestParam(required = false) String name, Page<?> page) {
+        String sql = "select dep.id, dep.name, dict.sub_class_name as dep_type from dbo.HT_INFO_DEP dep " +
                 "left join dbo.HT_BAS_DICT dict on dep.dep_type = dict.sub_class_no and dict.class_no = 1154 " +
-                "where dep.status=1 %s order by dep.id desc";
+                "where dep.status=1 ";
         if (StrUtil.isNotBlank(name)) {
-            sql = String.format(sql, "and name like '%" + name + "%'");
-        } else {
-            sql = String.format(sql, "");
+            sql += " and name like '%" + name + "%'";
+        }
+
+        //计数
+        Entity countEntity = lisDb.queryOne("select count(*)as num from (" + sql + ") tmp");
+        Long num = countEntity.getLong("num");
+        if (num < 1) {
+            return R.ok(new PageDTO<>());
         }
+
+        //分页
+        sql += String.format(" order by dep.id desc offset %d rows fetch next %d rows only", page.offset(), page.getSize());
+
         List<Entity> entities = lisDb.query(sql);
-        List<DeptItem> dictItems = entities.stream()
-                .map(entity -> entity.toBeanWithCamelCase(new DeptItem()))
+        List<DepItem> dictItems = entities.stream()
+                .map(entity -> entity.toBeanWithCamelCase(new DepItem()))
                 .collect(Collectors.toList());
-        return R.ok(dictItems);
+
+        Page<DepItem> pageResult = PageDTO.of(page.getCurrent(), page.getSize(), num);
+        pageResult.setRecords(dictItems);
+        return R.ok(pageResult);
     }
 
     @Operation(summary = "获取机构下医生")

+ 1 - 1
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/lis/vo/DeptItem.java → jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/lis/vo/DepItem.java

@@ -5,7 +5,7 @@ import lombok.Data;
 
 @Schema(description = "机构")
 @Data
-public class DeptItem {
+public class DepItem {
 
     @Schema(description = "id")
     private Long id;