Bläddra i källkod

Nzy接口支持分页

liutao 2 veckor sedan
förälder
incheckning
c5316d737d

+ 0 - 18
YHYZT/server/src/main/java/com/zjugis/yzt/beans/vo/StNzydkVO.java

@@ -1,18 +0,0 @@
-package com.zjugis.yzt.beans.vo;
-
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonInclude;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Data
-@JsonInclude(JsonInclude.Include.ALWAYS)
-public class StNzydkVO {
-    private String pch;
-    private String lx;
-    private String pwh;
-    private String pzrq;
-    private BigDecimal pzMj;
-    private String nmjf;
-} 

+ 37 - 25
YHYZT/server/src/main/java/com/zjugis/yzt/controller/StNzydkController.java

@@ -11,11 +11,10 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
 import java.util.List;
-import com.zjugis.yzt.beans.vo.StNzydkVO;
 import java.util.stream.Collectors;
 import java.util.Comparator;
-import java.util.Map;
-import java.util.Date;
+import java.util.ArrayList;
+import java.util.Optional;
 
 /**
  * @program: yh_yzt
@@ -33,19 +32,21 @@ public class StNzydkController {
     @Autowired
     private StNzydkUploadService stNzydkUploadService;
 
-
     /**
-     * 获取所有农转用项目信息
+     * 获取农转用项目信息(分页)
      */
-    @GetMapping("/list")
-    public List<StNzydkVO> getStNzydkByPage(@RequestParam(required = false) String pch,
+    @GetMapping("/page")
+    public Page<StNzydk> getStNzydkByPage(
+                                         @RequestParam(required = false) String pch,
                                          @RequestParam(required = false) String lx,
                                          @RequestParam(required = false) String pwh,
                                          @RequestParam(required = false) String pzrqStart,
                                          @RequestParam(required = false) String pzrqEnd,
                                          @RequestParam(required = false) BigDecimal pzmj,
                                          @RequestParam(required = false) String nmjf,
-                                         @RequestParam(required = false) String pcbh) {
+                                         @RequestParam(required = false) String pcbh,
+                                         @RequestParam(defaultValue = "1") long current,
+                                         @RequestParam(defaultValue = "10") long size) {
         QueryWrapper<StNzydk> queryWrapper = new QueryWrapper<>();
 
         if (pch != null && !pch.isEmpty()) {
@@ -73,27 +74,38 @@ public class StNzydkController {
             queryWrapper.eq("pcbh", pcbh);
         }
 
-        List<StNzydk> list = stNzydkService.list(queryWrapper);
+        // 获取所有数据
+        List<StNzydk> allList = stNzydkService.list(queryWrapper);
 
-        // 对所有记录按照pch进行去重,只取第一条记录
-        return list.stream()
-                .collect(Collectors.toMap(
+        // 按pch去重,保留id最小的记录
+        List<StNzydk> distinctList = allList.stream()
+                .collect(Collectors.groupingBy(
                         StNzydk::getPch,
-                        stNzydk -> stNzydk,
-                        (existing, replacement) -> existing // 保留现有(即第一条)
+                        Collectors.minBy(Comparator.comparing(StNzydk::getObjectid))
                 ))
-                .values().stream()
-                .map(stNzydk -> {
-                    StNzydkVO vo = new StNzydkVO();
-                    vo.setPch(stNzydk.getPch());
-                    vo.setLx(stNzydk.getLx());
-                    vo.setPwh(stNzydk.getPwh());
-                    vo.setPzrq(stNzydk.getPzrq());
-                    vo.setPzMj(stNzydk.getPzMj()); // 注意:这里需要与StNzydk中的字段名匹配
-                    vo.setNmjf(stNzydk.getNmjf());
-                    return vo;
-                })
+                .values()
+                .stream()
+                .filter(Optional::isPresent)
+                .map(Optional::get)
+                .sorted(Comparator.comparing(StNzydk::getObjectid))
                 .collect(Collectors.toList());
+
+        // 计算总记录数
+        long total = distinctList.size();
+
+        // 计算当前页的数据
+        int fromIndex = (int) ((current - 1) * size);
+        int toIndex = Math.min((int) (current * size), distinctList.size());
+
+        // 获取当前页的记录
+        List<StNzydk> pageRecords = fromIndex >= distinctList.size() ? 
+            new ArrayList<>() : distinctList.subList(fromIndex, toIndex);
+
+        // 创建分页对象并设置数据
+        Page<StNzydk> page = new Page<>(current, size, total);
+        page.setRecords(pageRecords);
+        
+        return page;
     }
 
     /**