From 552c700f584700316e8d1919dd1ad7f551c53ec4 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期二, 12 十一月 2024 10:03:22 +0800
Subject: [PATCH] fix : 新增日统计接口
---
src/main/java/com/boying/entity/vo/OutParkVo.java | 19 ++++++
src/main/resources/mapper/OutParkMapper.xml | 11 +++
src/main/java/com/boying/service/OutParkService.java | 3 +
src/main/java/com/boying/controller/OrderRecordController.java | 108 ++++++++++++++++++++++++++++++++++-
src/main/java/com/boying/service/impl/OutParkServiceImpl.java | 6 ++
src/main/java/com/boying/mapper/OutParkMapper.java | 3 +
6 files changed, 145 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/boying/controller/OrderRecordController.java b/src/main/java/com/boying/controller/OrderRecordController.java
index f9b88e2..9108b08 100644
--- a/src/main/java/com/boying/controller/OrderRecordController.java
+++ b/src/main/java/com/boying/controller/OrderRecordController.java
@@ -8,27 +8,26 @@
import com.boying.entity.OrderRecord;
import com.boying.entity.OutPark;
import com.boying.entity.Park;
-import com.boying.entity.User;
import com.boying.entity.vo.OrderRecordVo;
+import com.boying.entity.vo.OutParkVo;
import com.boying.service.OrderRecordService;
import com.boying.service.OutParkService;
import com.boying.service.ParkService;
import com.boying.service.UserService;
import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
-import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.Month;
+import java.time.YearMonth;
import java.util.*;
-import java.util.logging.Handler;
import java.util.stream.Collectors;
@RestController
@@ -136,5 +135,104 @@
return R.ok(resultList);
}
+ @PostMapping("/findCountPageByDay")
+ public Object findCountPageByDay(Integer parkId,String day) throws ParseException {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ if(StringUtils.isBlank(day)){
+ return R.failed("璇烽�夋嫨鏃堕棿鏌ヨ");
+ }else {
+ List<Park> parkList= new ArrayList<>();
+ if(parkId==null){
+ parkList = parkService.list();
+ }else {
+ Park byId = parkService.getById(parkId);
+ parkList.add(byId);
+ }
+ String[] split = day.split("-");
+ Integer year = Integer.parseInt(split[0]);
+ Integer month = Integer.parseInt(split[1]);
+ // 浣跨敤YearMonth.of()鍒涘缓YearMonth瀹炰緥
+ YearMonth yearMonth = YearMonth.of(year, month);
+ // 浣跨敤YearMonth瀹炰緥鐨刲engthOfMonth()鏂规硶鑾峰彇璇ユ湀鐨勬渶澶уぉ鏁�
+ int maxDay = yearMonth.lengthOfMonth();
+ String start = day+"-01";
+ String end = day+"-"+maxDay;
+ List<OutParkVo> list = outParkService.getVoList(parkId,start,end);
+ List<Map<String,Object>> resultMapList = new ArrayList<>();
+
+ List<String>str=new ArrayList<String>();
+ for (int i = 1; i <= maxDay; i++) {
+ if(i<10){
+ String d=day+"-0"+i;
+ str.add(d);
+ }else {
+ String d=day+"-"+i;
+ str.add(d);
+ }
+ }
+ for (String s : str) {
+ List<OutParkVo> resultList = new ArrayList<>();
+ List<OutParkVo> collect = list.stream().filter(item -> item.getTi().equals(s)).collect(Collectors.toList());
+ for (Park park : parkList) {
+ List<OutParkVo> vos = collect.stream().filter(item -> item.getParkId().equals(park.getId())).collect(Collectors.toList());
+ if(vos!=null && vos.size()>0){
+ OutParkVo vo = vos.get(0);
+ vo.setParkName(park.getName());
+ if(vo.getNum()==null){
+ vo.setNum(0);
+ }
+ resultList.add(vo);
+ }else {
+ OutParkVo outParkVo = new OutParkVo();
+ outParkVo.setTi(s);
+ outParkVo.setNum(0);
+ outParkVo.setParkId(park.getId());
+ outParkVo.setParkName(park.getName());
+ outParkVo.setPrice(0.0d);
+ resultList.add(outParkVo);
+ }
+ }
+ Map<String ,Object>map = new HashMap<>();
+ map.put("day",s);
+ map.put("data",resultList);
+ resultMapList.add(map);
+ }
+ return R.ok(resultMapList);
+ }
+ }
+
+ public static void main(String[] args) {
+ // 鑾峰彇褰撳墠鏃ユ湡
+ LocalDate currentDate = LocalDate.now();
+ // 鑾峰彇褰撳墠鏈堜唤
+ Month currentMonth = currentDate.getMonth();
+ int maxLength = currentMonth.maxLength();
+
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ List<String>str=new ArrayList<String>();
+ //String monthStart=df.format(new Date()).substring(0,8)+"01";
+ for (int i = 1; i <= maxLength; i++) {
+ if(i<10){
+ String d=df.format(new Date()).substring(0,8)+"0"+i;
+ str.add(d);
+ }else {
+ String d=df.format(new Date()).substring(0,8)+i;
+ str.add(d);
+ }
+ }
+ for (String s : str) {
+ System.out.println(s);
+ }
+
+ // 鍋囪鎴戜滑瑕佽幏鍙�2023骞�3鏈堢殑鏈�澶ф棩鏈�
+ int year = 2023;
+ int month = 3;
+ // 浣跨敤YearMonth.of()鍒涘缓YearMonth瀹炰緥
+ YearMonth yearMonth = YearMonth.of(year, month);
+ // 浣跨敤YearMonth瀹炰緥鐨刲engthOfMonth()鏂规硶鑾峰彇璇ユ湀鐨勬渶澶уぉ鏁�
+ int maxDay = yearMonth.lengthOfMonth();
+ System.out.println(maxDay);
+ }
+
}
diff --git a/src/main/java/com/boying/entity/vo/OutParkVo.java b/src/main/java/com/boying/entity/vo/OutParkVo.java
new file mode 100644
index 0000000..d122414
--- /dev/null
+++ b/src/main/java/com/boying/entity/vo/OutParkVo.java
@@ -0,0 +1,19 @@
+package com.boying.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName OutParkVo.java
+ * @Description TODO
+ * @createTime 2024骞�11鏈�11鏃� 17:57:00
+ */
+@Data
+public class OutParkVo {
+ private Double price;
+ private Integer parkId;
+ private Integer num;
+ private String ti;
+ private String parkName;
+}
diff --git a/src/main/java/com/boying/mapper/OutParkMapper.java b/src/main/java/com/boying/mapper/OutParkMapper.java
index c33d836..1737c89 100644
--- a/src/main/java/com/boying/mapper/OutParkMapper.java
+++ b/src/main/java/com/boying/mapper/OutParkMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.boying.entity.OutPark;
+import com.boying.entity.vo.OutParkVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -21,4 +22,6 @@
long getCount(@Param("carNo")String carNo, @Param("parkId")Long parkId, @Param("payCode")String payCode, @Param("date")String date);
+ List<OutParkVo> getVoList(@Param("parkId")Integer parkId,@Param("startDate")String startDate,@Param("endDate")String endDate);
+
}
diff --git a/src/main/java/com/boying/service/OutParkService.java b/src/main/java/com/boying/service/OutParkService.java
index 4cad1cb..5f53074 100644
--- a/src/main/java/com/boying/service/OutParkService.java
+++ b/src/main/java/com/boying/service/OutParkService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.boying.entity.OutPark;
import com.boying.entity.Statistic;
+import com.boying.entity.vo.OutParkVo;
import io.swagger.models.auth.In;
import java.time.LocalDateTime;
@@ -51,4 +52,6 @@
List<Map<String, Object>> getLikeCar(String carNo, Integer parkId, LocalDateTime dateTime);
+ List<OutParkVo> getVoList(Integer parkId,String startDate,String endDate);
+
}
diff --git a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
index e5c929e..c2567f3 100644
--- a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
+++ b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.boying.entity.*;
+import com.boying.entity.vo.OutParkVo;
import com.boying.mapper.EnterParkMapper;
import com.boying.mapper.OutParkMapper;
import com.boying.mapper.StatisticMapper;
@@ -248,6 +249,11 @@
}
@Override
+ public List<OutParkVo> getVoList(Integer parkId, String startDate, String endDate) {
+ return outParkMapper.getVoList(parkId,startDate,endDate);
+ }
+
+ @Override
public OutPark findBy5min2(String carNo, Integer parkId,LocalDateTime dateTime) {
LocalDateTime localDateTime = dateTime.minusMinutes(7);
QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
diff --git a/src/main/resources/mapper/OutParkMapper.xml b/src/main/resources/mapper/OutParkMapper.xml
index 81a4ccf..11e82cd 100644
--- a/src/main/resources/mapper/OutParkMapper.xml
+++ b/src/main/resources/mapper/OutParkMapper.xml
@@ -70,4 +70,15 @@
select id,car_no,status2 from out_park
where barrier_id = #{barrierId} and `status` = 1 and status2 = 0 and del_flag = 0 limit 1;
</select>
+
+ <select id="getVoList" resultType="com.boying.entity.vo.OutParkVo">
+ SELECT SUM(price) price,IFNULL(count( id ),0) num,park_id,DATE_FORMAT(update_time, '%Y-%m-%d') ti FROM out_park
+ WHERE `status` = 1 AND pay_code IS NOT NULL
+ <if test="parkId != null and parkId != ''">
+ and park_id = #{parkId}
+ </if>
+ AND DATE_FORMAT(update_time,'%Y-%m-%d') >= DATE_FORMAT(#{startDate},'%Y-%m-%d')
+ AND DATE_FORMAT(update_time,'%Y-%m-%d') <= DATE_FORMAT(#{endDate},'%Y-%m-%d')
+ GROUP BY ti,park_id
+ </select>
</mapper>
--
Gitblit v1.9.1