shankai
2024-12-13 0fe6e0afc66e1034b60a3eb7d2cf3a9e04851abe
by: 修改selectPage接口返回值
6 files modified
49 ■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml 15 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java 18 ●●●● patch | view | raw | blame | history
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