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