From 914c5f291dd2981de7d59fbf5abc7ec1c6472b52 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 09 九月 2024 11:44:44 +0800 Subject: [PATCH] 停车缴费列表 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java | 39 +++++++++++++ ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml | 55 ++++++++++++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java | 10 +++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java | 21 +++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java | 2 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java | 5 + ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java | 5 - 7 files changed, 134 insertions(+), 3 deletions(-) diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java index 38121cc..224a867 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + @Data @ApiModel(value = "停车缴费订单Query") public class ParkingRecordQuery extends TimeRangePageQuery { @@ -18,4 +20,7 @@ @ApiModelProperty(value = "车牌号") private String licensePlate; + @ApiModelProperty(value = "停车场id集合 前端忽略") + private List<Integer> lotIds; + } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java index b34c051..9718c4c 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java @@ -55,9 +55,8 @@ @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "停车缴费订单列表") @PostMapping(value = "/pageList") - public R<PageInfo<TParkingRecordPageInfoVO>> pageList(@RequestBody ParkingRecordQuery query) { - - return R.ok(); + public R<TParkingRecordPageInfoVO> pageList(@RequestBody ParkingRecordQuery query) { + return R.ok(parkingRecordService.pageList(query)); } @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "详情") diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java index 0b4fa13..9a7ab8d 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java @@ -8,6 +8,7 @@ import com.ruoyi.chargingPile.api.vo.SiteDetailVO; import com.ruoyi.chargingPile.api.vo.SiteVO; import com.ruoyi.common.core.web.page.PageInfo; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,6 +18,7 @@ * @author zhibing.pu * @Date 2024/8/7 19:49 */ +@Mapper public interface SiteMapper extends BaseMapper<Site> { diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java index 248c63f..d0b6ced 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java @@ -2,10 +2,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.chargingPile.api.model.TParkingRecord; +import com.ruoyi.chargingPile.api.query.ParkingRecordQuery; +import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO; +import com.ruoyi.chargingPile.api.vo.TParkingRecordVO; +import com.ruoyi.common.core.web.page.PageInfo; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.time.LocalDate; +import java.util.List; /** * <p> @@ -18,4 +23,20 @@ public interface TParkingRecordMapper extends BaseMapper<TParkingRecord> { BigDecimal getSum(@Param("sixBefore") LocalDate sixBefore); + + /** + * 停车缴费订单列表 + * @param query + * @param pageInfo + * @return + */ + List<TParkingRecordVO> pageList(@Param("query") ParkingRecordQuery query, @Param("pageInfo")PageInfo<TParkingRecordVO> pageInfo); + + /** + * 统计 + * @param query + * @return + */ + TParkingRecordPageInfoVO getParkingRecordCount(@Param("query")ParkingRecordQuery query); + } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java index 2af1069..9479008 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.chargingPile.api.model.TParkingRecord; +import com.ruoyi.chargingPile.api.query.ParkingRecordQuery; +import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO; +import com.ruoyi.common.core.web.page.PageInfo; import java.math.BigDecimal; import java.time.LocalDate; @@ -17,4 +20,11 @@ public interface TParkingRecordService extends IService<TParkingRecord> { BigDecimal getSum(LocalDate sixBefore); + + /** + * 停车缴费订单列表 + * @param query + * @return + */ + TParkingRecordPageInfoVO pageList(ParkingRecordQuery query); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java index 73fccbb..8e6f6e9 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java @@ -1,13 +1,28 @@ package com.ruoyi.chargingPile.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.chargingPile.api.model.Site; +import com.ruoyi.chargingPile.api.model.TParkingLot; import com.ruoyi.chargingPile.api.model.TParkingRecord; +import com.ruoyi.chargingPile.api.query.ParkingRecordQuery; +import com.ruoyi.chargingPile.api.vo.TParkingLotVO; +import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO; +import com.ruoyi.chargingPile.api.vo.TParkingRecordVO; +import com.ruoyi.chargingPile.domain.SiteMenu; +import com.ruoyi.chargingPile.mapper.SiteMapper; +import com.ruoyi.chargingPile.mapper.TParkingLotMapper; import com.ruoyi.chargingPile.mapper.TParkingRecordMapper; import com.ruoyi.chargingPile.service.TParkingRecordService; +import com.ruoyi.common.core.web.page.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -20,8 +35,32 @@ @Service public class TParkingRecordServiceImpl extends ServiceImpl<TParkingRecordMapper, TParkingRecord> implements TParkingRecordService { + @Autowired + private SiteMapper siteMapper; + @Autowired + private TParkingLotMapper parkingLotMapper; + @Override public BigDecimal getSum(LocalDate sixBefore) { return this.baseMapper.getSum(sixBefore); } + + @Override + public TParkingRecordPageInfoVO pageList(ParkingRecordQuery query) { + // 查询站点的停车场id + if(Objects.nonNull(query.getSiteId())){ + Site site = siteMapper.selectById(query.getSiteId()); + List<TParkingLot> tParkingLots = parkingLotMapper.selectList(Wrappers.lambdaQuery(TParkingLot.class) + .eq(TParkingLot::getSiteId, site.getId())); + List<Integer> lotIds = tParkingLots.stream().map(TParkingLot::getId).collect(Collectors.toList()); + query.setLotIds(lotIds); + } + PageInfo<TParkingRecordVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); + List<TParkingRecordVO> list = this.baseMapper.pageList(query,pageInfo); + pageInfo.setRecords(list); + // 查询总数 + TParkingRecordPageInfoVO infoVO = this.baseMapper.getParkingRecordCount(query); + infoVO.setParkingRecordVOS(pageInfo); + return infoVO; + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml index defbedf..3bc729d 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml @@ -17,6 +17,7 @@ <result column="status" property="status" /> <result column="out_parking_type" property="outParkingType" /> <result column="create_time" property="createTime" /> + <result column="code" property="code" /> </resultMap> <!-- 通用查询结果列 --> @@ -26,5 +27,59 @@ <select id="getSum" resultType="java.math.BigDecimal"> select sum(timeout_amount) from t_parking_record where in_parking_time >= #{sixBefore} </select> + <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TParkingRecordVO"> + select + tpr.id, tpr.app_user_id, tpr.license_plate, tpr.vehicle_color, tpr.charging_order_id, tpr.parking_lot_id, tpr.in_parking_time, tpr.out_parking_time, + tpr.parking_duration, tpr.order_amount, tpr.status, tpr.out_parking_type, tpr.create_time,(tpr.order_amount - tpr.timeout_amount) as parkingFee, + (tpr.parking_duration - tpr.free_duration) as feeDuration,ts.name as siteName + from t_parking_record tpr + left join t_parking_lot tpl on tpr.parking_lot_id = tpl.id + left join t_site ts on tpl.site_id = ts.id + <where> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND tpr.create_time BETWEEN #{query.startTime} AND #{query.endTime} + </if> + <if test="query.code != null and query.code != ''"> + AND tpr.code LIKE concat('%',#{query.code},'%') + </if> + <if test="query.licensePlate != null and query.licensePlate != ''"> + AND tpr.licensePlate LIKE concat('%',#{query.licensePlate},'%') + </if> + <if test="query.lotIds != null and query.lotIds.size()>0"> + AND tpr.parking_lot_id IN + <foreach collection="query.lotIds" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + AND tpr.status = 3 + </where> + ORDER BY tpr.create_time DESC + </select> + <select id="getParkingRecordCount" resultType="com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO"> + SELECT count(id) as orderCount, + sum(timeout_amount) as timeoutAmountSum, + sum(parking_duration - free_duration) as feeDurationSum, + sum(parking_duration) as parkingDurationSum + from t_parking_record + <where> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND create_time BETWEEN #{query.startTime} AND #{query.endTime} + </if> + <if test="query.code != null and query.code != ''"> + AND code LIKE concat('%',#{query.code},'%') + </if> + <if test="query.licensePlate != null and query.licensePlate != ''"> + AND licensePlate LIKE concat('%',#{query.licensePlate},'%') + </if> + <if test="query.lotIds != null and query.lotIds.size()>0"> + AND parking_lot_id IN + <foreach collection="query.lotIds" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + AND status = 3 + </where> + ORDER BY create_time DESC + </select> </mapper> -- Gitblit v1.7.1