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; } 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); } /** 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); /** * 自定义分页 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> 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); /** * 自定义分页 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