|
@@ -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;
|
|
|
}
|
|
|
|
|
|
/**
|