From 0fe6e0afc66e1034b60a3eb7d2cf3a9e04851abe Mon Sep 17 00:00:00 2001
From: shankai <shankai1995@qq.com>
Date: Fri, 13 Dec 2024 11:38:22 +0800
Subject: [PATCH] by: 修改selectPage接口返回值
---
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java | 2 +-
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java | 18 ++++++++++++++----
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java | 8 +++-----
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java | 2 ++
skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java | 4 ++--
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml | 15 ++++++++++++++-
6 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java
index 2f24cd4..fe832ce 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java
@@ -31,7 +31,7 @@
public class DistanceRecordVO extends DistanceRecord {
private static final long serialVersionUID = 1L;
- private double distanceOffset;
+ private String distanceOffset;
- private double initDistance;
+ private String initDistance;
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java
index ea31bd0..b88b1b7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java
@@ -38,8 +38,6 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import java.util.List;
-
/**
* E0功能码数据controller.
*
@@ -75,9 +73,9 @@
*/
@GetMapping("/selectpage")
@ApiOperation(value = "自定义分页", notes = "传入SelectPageParam对象")
- public R<List<DistanceRecordVO>> selectPage(SelectPageParam param) {
- List<DistanceRecordVO> recordVOList = distanceRecordService.selectPage(param);
- return R.data(recordVOList);
+ public R<IPage<DistanceRecordVO>> selectPage(SelectPageParam param) {
+ IPage<DistanceRecordVO> page = distanceRecordService.selectPage(param);
+ return R.data(page);
}
/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java
index ad8c328..0e137c8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java
@@ -35,11 +35,13 @@
public interface DistanceRecordMapper extends BaseMapper<DistanceRecord> {
/**
* 自定义分页逻辑
+ * 和getSubTableCount4Page成对使用
*
* @param param {@link SelectPageParam}
* @return
*/
List<DistanceRecord> selectPage(SelectPageParam param);
+ int getSubTableCount4Page(SelectPageParam param);
/**
* 自定义分页
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml
index 58cbb69..247590f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml
@@ -20,6 +20,19 @@
<result column="power_voltage" property="powerVoltage"/>
</resultMap>
+ <select id="getSubTableCount4Page" parameterType="cn.gistack.by.waterdata.pojo.entity.SelectPageParam"
+ resultType="java.lang.Integer">
+ select
+ count(*)
+ from (
+ select
+ *
+ from SJZT_ODS."water_data_distance"
+ where "device_no" = #{deviceNo} and "ob_date" >= to_date(#{startTime}, 'yyyy-mm-dd hh24:mi:ss')
+ and "ob_date" <![CDATA[ <= ]]> to_date(#{endTime}, 'yyyy-mm-dd hh24:mi:ss') and "order" = #{order}
+ )
+ </select>
+
<select id="selectPage" parameterType="cn.gistack.by.waterdata.pojo.entity.SelectPageParam" resultMap="distanceRecordResultMap">
select
*
@@ -29,7 +42,7 @@
from SJZT_ODS."water_data_distance"
where "device_no" = #{deviceNo} and "ob_date" >= to_date(#{startTime}, 'yyyy-mm-dd hh24:mi:ss')
and "ob_date" <![CDATA[ <= ]]> to_date(#{endTime}, 'yyyy-mm-dd hh24:mi:ss') and "order" = #{order}
- ) temp
+ ) temp
limit ((#{currentPageIndex} - 1) * #{pageSize}), #{pageSize}
</select>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java
index b012467..0b4f806 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java
@@ -38,7 +38,7 @@
* @param param {@link SelectPageParam}
* @return
*/
- List<DistanceRecordVO> selectPage(SelectPageParam param);
+ IPage<DistanceRecordVO> selectPage(SelectPageParam param);
/**
* 自定义分页
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java
index b31941f..56298f6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java
@@ -23,9 +23,11 @@
import cn.gistack.by.waterdata.pojo.wrapper.DistanceRecordWrapper;
import cn.gistack.by.waterdata.service.api.IDistanceRecordService;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
@@ -44,17 +46,25 @@
* @param param {@link SelectPageParam}
* @return
*/
- public List<DistanceRecordVO> selectPage(SelectPageParam param) {
+ public IPage<DistanceRecordVO> selectPage(SelectPageParam param) {
List<DistanceRecord> distanceRecords = this.baseMapper.selectPage(param);
+ int subTableRecordsCount = this.baseMapper.getSubTableCount4Page(param);
List<DistanceRecordVO> recordVOList = new ArrayList<>(distanceRecords.size());
for (DistanceRecord distanceRecord : distanceRecords) {
DistanceRecordVO distanceRecordVO = DistanceRecordWrapper.build().entityVO(distanceRecord);
- distanceRecordVO.setInitDistance(param.getInitDistance());
- distanceRecordVO.setDistanceOffset(distanceRecordVO.getDistance() - distanceRecordVO.getInitDistance());
+ distanceRecordVO.setInitDistance(new DecimalFormat("#.##").format(param.getInitDistance()));
+ distanceRecordVO.setDistanceOffset(new DecimalFormat("#.##")
+ .format(distanceRecordVO.getDistance() - param.getInitDistance()));
recordVOList.add(distanceRecordVO);
}
- return recordVOList;
+
+ Page page = new Page();
+ page.setCurrent(param.getCurrentPageIndex());
+ page.setSize(param.getPageSize());
+ page.setRecords(recordVOList);
+ page.setTotal(subTableRecordsCount);
+ return page;
}
@Override
--
Gitblit v1.9.3