Selaa lähdekoodia

Merge branch 'master' of http://47.92.161.104:10080/fulonglong/chargeing-parking

hbjzws 1 vuosi sitten
vanhempi
commit
2e7e8be2db

+ 10 - 2
src/main/java/com/charging/chargingparking/mapper/mobile/ParkingChargeMapper.java

@@ -14,7 +14,7 @@ public interface ParkingChargeMapper {
 	 * @param searchParams
 	 * @return
 	 */
-	Map<String,Object>  queryParkingChargeDaySum(Map<String,Object> params);
+	List<Map<String,Object>>  queryParkingChargeDaySum(Map<String,Object> params);
 
 	/**
 	 * 分页查询停车费用
@@ -54,5 +54,13 @@ public interface ParkingChargeMapper {
 	 * @return
 	 */
 	Map<String,Object> rptPay(@Param("parkingIds") String[] parkingIds,@Param("chargeStart") String chargeStart,@Param("chargeEnd") String chargeEnd);
-
+	
+	/**
+	 * 查询指定日期段内有缴费记录的最大日期
+	 * @param parkingIds
+	 * @param chargeStart
+	 * @param chargeEnd
+	 * @return
+	 */
+	String getMaxPayDate(@Param("parkingIds") String[] parkingIds,@Param("chargeStart") String chargeStart,@Param("chargeEnd") String chargeEnd);
 }

+ 66 - 13
src/main/java/com/charging/chargingparking/modules/mobileController/ParkingChargeController.java

@@ -10,6 +10,7 @@ import javax.validation.constraints.NotBlank;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -22,6 +23,10 @@ import com.charging.chargingparking.utils.MapUtils;
 import com.charging.chargingparking.utils.RespVO;
 import com.charging.chargingparking.utils.RespVOBuilder;
 
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
 @RestController
 @Validated
 @RequestMapping("/mobileApi/charge")
@@ -34,13 +39,19 @@ public class ParkingChargeController {
 	private ParkingLogService   parkingLogService;
 	
 	/**
-	 * 收费主页组合接口
+	 * 收费主页组合接口(时间段内统计,按天统计,明细记录)
 	 * @param parkingIds
 	 * @param chargeStart
 	 * @param chargeEnd
 	 * @return
 	 */
-	@RequestMapping("/loadPageData")
+	@ApiOperation("收费主页")
+	@ApiImplicitParams({
+        @ApiImplicitParam(name = "parkingIds", value = "停车场编号", required = true, paramType = "form"),
+        @ApiImplicitParam(name = "chargeStart", value = "缴费开始日期", required = false, paramType = "form"),
+        @ApiImplicitParam(name = "chargeEnd", value = "缴费截止日期", required = false, paramType = "form")
+    })
+	@PostMapping("/loadPageData")
 	public RespVO  loadPageData(@NotBlank(message="停车场编号不能为空") String parkingIds,String chargeStart,String chargeEnd) {
 		String nowStr=DateFormatUtils.format(new Date(), "yyyy-MM-dd");
 		String[] ids=parkingIds.split(",");
@@ -54,9 +65,13 @@ public class ParkingChargeController {
 			chargeEnd=nowStr;
 		}
 		
-		Object  obj=query(parkingIds,chargeEnd,1,10).getData();
+		//明细记录
+		Object  obj=query(parkingIds,chargeStart,chargeEnd,1,15).getData();
+		
+		//统计数据
+		Map<String,Object> rptPay=service.rptPay(ids, chargeStart,chargeEnd);
 		
-		return RespVOBuilder.ok(MapUtils.build("rptPay",service.rptPay(ids, chargeStart,chargeEnd),"payLogs",obj));
+		return RespVOBuilder.ok(MapUtils.build("rptPay",rptPay,"payLogs",obj));
 	}
 	
 	/**
@@ -68,23 +83,53 @@ public class ParkingChargeController {
 	 * @param pageSize
 	 * @return
 	 */
-	@RequestMapping("/query")
-	public RespVO  query(@NotBlank(message="停车场编号不能为空") String parkingIds,String chargeDate,@RequestParam(value="pageNum",defaultValue="1") int pageNum,
+	@ApiOperation("分页查询缴费明细(按天统计)")
+	@ApiImplicitParams({
+        @ApiImplicitParam(name = "parkingIds", value = "停车场编号", required = true, paramType = "form"),
+        @ApiImplicitParam(name = "chargeStart", value = "缴费开始日期", required = false, paramType = "form"),
+        @ApiImplicitParam(name = "chargeEnd", value = "缴费截止日期", required = false, paramType = "form"),
+        @ApiImplicitParam(name = "pageNum", value = "页码", required = false, paramType = "form"),
+        @ApiImplicitParam(name = "pageSize", value = "页大小", required = false, paramType = "form")
+    })
+	@PostMapping("/query")
+	public RespVO  query(
+			@NotBlank(message="停车场编号不能为空") String parkingIds,
+			String chargeStart,
+			String chargeEnd,
+			@RequestParam(value="pageNum",defaultValue="1") int pageNum,
             @RequestParam(value="pageSize",defaultValue="10") int pageSize) {
 		
-		Date dateObj=DateUtil.parse(chargeDate,"yyyy-MM-dd");
+		String nowStr=DateFormatUtils.format(new Date(), "yyyy-MM-dd");
+		Date dateObj=DateUtil.parse(chargeStart,"yyyy-MM-dd");
+		if(dateObj==null) {
+			chargeStart=nowStr;
+		}
+		dateObj=DateUtil.parse(chargeEnd,"yyyy-MM-dd");
 		if(dateObj==null) {
-			chargeDate=DateUtil.format(new Date(), "yyyy-MM-dd");
+			chargeEnd=nowStr;
 		}
 		
 		Map<String,Object> searchParams=new HashMap<String,Object>();
-		searchParams.put("chargeDate", chargeDate);
+		searchParams.put("chargeStart", chargeStart);
+		searchParams.put("chargeEnd", chargeEnd);
 		searchParams.put("parkingIds",parkingIds.split(","));
 		
-		Map<String,Object>  dayGrp=service.queryChargeLogDaySum(searchParams);
-		
+		//收费明细记录
 		IPage<Map<String,Object>>  pagedData=service.queryChargeLog(searchParams, pageNum, pageSize);
 		
+		if(pagedData==null || pagedData.getTotal()==0) {
+			return RespVOBuilder.ok(MapUtils.build("pagedData",pagedData,"dayGrp",null));
+		}
+		
+		//本次查询结果的日期范围
+		String endDate=(String)pagedData.getRecords().get(0).get("pay_date");
+		String startDate=(String)pagedData.getRecords().get(pagedData.getRecords().size()-1).get("pay_date");
+		
+		//按天统计数据(按本次结果日期范围)
+		searchParams.put("chargeStart", startDate);
+		searchParams.put("chargeEnd", endDate);
+		List<Map<String,Object>>  dayGrp=service.queryChargeLogDaySum(searchParams);
+		
 		
 		
 		return RespVOBuilder.ok(MapUtils.build("pagedData",pagedData,"dayGrp",dayGrp));
@@ -95,7 +140,11 @@ public class ParkingChargeController {
 	 * @param parkingLogId
 	 * @return
 	 */
-	@RequestMapping("/loadDtlPageData")
+	@ApiOperation("收费明细页组合接口")
+	@ApiImplicitParams({
+        @ApiImplicitParam(name = "parkingLogId", value = "停车记录号", required = true, paramType = "form")
+    })
+	@PostMapping("/loadDtlPageData")
 	public RespVO  loadDtlPageData(@NotBlank(message="缺少要查找的停车记录编号") String parkingLogId) {
 		List<Map<String,Object>> payLogs=service.loadChargeByParkingLog(parkingLogId);
 		Map<String,Object> parkingLog=parkingLogService.get(parkingLogId);
@@ -107,7 +156,11 @@ public class ParkingChargeController {
 	 * @param parkingLogId
 	 * @return
 	 */
-	@RequestMapping("/loadByParkingLog")
+	@ApiOperation("根据停车记录查询所有缴费记录")
+	@ApiImplicitParams({
+        @ApiImplicitParam(name = "parkingLogId", value = "停车记录号", required = true, paramType = "form")
+    })
+	@PostMapping("/loadByParkingLog")
 	public RespVO  loadByParkingLog(@NotBlank(message="停车记录号不能为空") String parkingLogId) {
 		return RespVOBuilder.ok(service.loadChargeByParkingLog(parkingLogId));
 	}

+ 11 - 2
src/main/java/com/charging/chargingparking/modules/mobileservice/ParkingChargeService.java

@@ -17,11 +17,11 @@ public interface ParkingChargeService {
 	IPage<Map<String,Object>> queryChargeLog(Map<String, Object> searchParams, int pageNumber, int pageSize);
 	
 	/**
-	 * 查询缴费合计  按天合计
+	 * 查询缴费合计  按天分组合计
 	 * @param searchParams
 	 * @return
 	 */
-	Map<String,Object> queryChargeLogDaySum(Map<String,Object> params);
+	List<Map<String,Object>> queryChargeLogDaySum(Map<String,Object> params);
 	
 	
 	/**
@@ -54,4 +54,13 @@ public interface ParkingChargeService {
 	 * @return
 	 */
 	Map<String,Object>  rptPay(String[] parkingIds,String chargeStart,String chargeEnd);
+	
+	/**
+	 * 查询指定日期段内有缴费记录的最大日期
+	 * @param parkingIds
+	 * @param chargeStart
+	 * @param chargeEnd
+	 * @return
+	 */
+	String getMaxPayDate(String[] parkingIds,String chargeStart,String chargeEnd);
 }

+ 6 - 1
src/main/java/com/charging/chargingparking/modules/mobileservice/impl/ParkingChargeServiceImp.java

@@ -29,7 +29,7 @@ public class ParkingChargeServiceImp implements ParkingChargeService {
 	}
 	
 	@Override
-	public Map<String,Object>  queryChargeLogDaySum(Map<String,Object> params){
+	public List<Map<String,Object>>  queryChargeLogDaySum(Map<String,Object> params){
 		return mapper.queryParkingChargeDaySum(params);
 	}
 
@@ -52,4 +52,9 @@ public class ParkingChargeServiceImp implements ParkingChargeService {
 	public Map<String, Object> rptPay(String[] parkingIds,String chargeStart,String chargeEnd) {
 		return mapper.rptPay(parkingIds, chargeStart,chargeEnd);
 	}
+	
+	@Override
+	public String getMaxPayDate(String[] parkingIds,String chargeStart,String chargeEnd) {
+		return mapper.getMaxPayDate(parkingIds, chargeStart,chargeEnd);
+	}
 }

+ 51 - 25
src/main/resources/mapper/api/ParkingChargeMapper.xml

@@ -4,9 +4,31 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.charging.chargingparking.mapper.mobile.ParkingChargeMapper">
 
+
+	<!-- 统计指定停车场支付金额、笔数 -->
+    <select id="rptPay" resultType="java.util.HashMap">
+    	
+		select sum(paytab.pay_amount) today_pay_amount, sum(paytab.pay_count) today_pay_count,sum(pr.total_amount) should_pay_amount
+		from base_parking_record pr
+		inner join (
+		select parking_record_id,sum(pay_amount) pay_amount,count(pp.id) pay_count
+		from base_parking_pay pp 
+		where pp.del_flag=false and pp.pay_status=20  and date_format(pp.pay_time,'%Y-%m-%d') between #{chargeStart}  and #{chargeEnd}
+		group by parking_record_id
+		) paytab  on pr.id=paytab.parking_record_id
+		
+		where pr.del_flag=false
+		and pr.park_id in 
+		<foreach collection="parkingIds" item="id" index="index" open="(" close=")" separator=",">
+	           #{id}
+	    </foreach>
+		
+	</select>
+
 	<!-- 查询缴费记录(无论车是否已出场,暂无缴费记录的不检索)按天合计 -->
 	<select id="queryParkingChargeDaySum"  resultType="java.util.HashMap">
-	    select sum(pp.pay_amount) day_pay_amount,#{chargeDate} pay_date
+		
+	    select sum(pp.pay_amount) day_pay_amount,date_format(pp.pay_time,'%Y-%m-%d') pay_date
 		from base_parking_record pr
 		inner join base_parking_pay pp on pr.id=pp.parking_record_id
 		where pr.del_flag=false and pp.del_flag=false and pp.pay_status=20 
@@ -16,11 +38,21 @@
 		        #{id}
 		    </foreach>
 			
-			and date_format(pp.pay_time,'%Y-%m-%d') = #{chargeDate}
+			<if test="chargeStart!=null">
+				<![CDATA[ and date_format(pp.pay_time,'%Y-%m-%d') >= #{chargeStart} ]]>
+			</if>
+		
+			<if test="chargeEnd!=null">
+				<![CDATA[ and date_format(pp.pay_time,'%Y-%m-%d') <= #{chargeEnd} ]]>
+			</if>
 		
 			<if test="carNum!=null">
 				and pr.car_num like #{carNum}
 			</if>
+			
+			group by date_format(pp.pay_time,'%Y-%m-%d')
+			
+			order by pay_date desc
 	</select>
     
     <!-- 查询缴费记录(无论车是否已出场,暂无缴费记录的不检索) -->
@@ -41,19 +73,21 @@
 	        #{id}
 	    </foreach>
 		
-		<![CDATA[ and pay_date = #{searchParams.chargeDate} ]]>
-	
+		<!-- <if test="searchParams.chargeDate!=null">
+			<![CDATA[ and pay_date = #{searchParams.chargeDate} ]]>
+		</if>
+		
 		<if test="searchParams.carNum!=null">
 			and pr.car_num like #{searchParams.carNum}
-		</if>
+		</if> -->
 		
-		<!-- <if test="searchParams.chargeStart!=null">
+		<if test="searchParams.chargeStart!=null">
 			<![CDATA[ and pay_date >= #{searchParams.chargeStart} ]]>
 		</if>
 		
 		<if test="searchParams.chargeEnd!=null">
 			<![CDATA[ and pay_date <= #{searchParams.chargeEnd} ]]>
-		</if> -->
+		</if>
 		
 		order by pay_date  desc,out_parking_time desc
 		
@@ -82,26 +116,18 @@
 		where del_flag=false and park_id=#{0}
 	</select>
     
-    <!-- 统计指定停车场支付金额、笔数 -->
-    <select id="rptPay" resultType="java.util.HashMap">
-    	
-		select sum(paytab.pay_amount) today_pay_amount, sum(paytab.pay_count) today_pay_count,sum(pr.total_amount) should_pay_amount
-		from base_parking_record pr
-		inner join (
-		select parking_record_id,sum(pay_amount) pay_amount,count(pp.id) pay_count
-		from base_parking_pay pp 
-		where pp.del_flag=false and pp.pay_status=20  and date_format(pp.pay_time,'%Y-%m-%d') between #{chargeStart}  and #{chargeEnd}
-		group by parking_record_id
-		) paytab  on pr.id=paytab.parking_record_id
-		
-		where pr.del_flag=false
-		and pr.park_id in 
+    
+    
+    <!-- 查询指定日期段内有缴费记录的最大日期 -->
+    <select id="getMaxPayDate" resultType="string">
+    	select date_format(max(pp.pay_time),'%Y-%m-%d')
+    	from base_parking_record pr
+    	inner join base_parking_pay pp  on  pr.id=pp.parking_record_id
+    	where pr.del_flag=false and  pp.del_flag=false and pp.pay_status=20
+    	and date_format(pp.pay_time,'%Y-%m-%d') between #{chargeStart}  and #{chargeEnd}
+    	and pr.park_id in 
 		<foreach collection="parkingIds" item="id" index="index" open="(" close=")" separator=",">
 	           #{id}
 	    </foreach>
-		
-		
-		
-		
     </select>
 </mapper>