From 8a939b61a44eddeaabec7f4e64750367415a2bca Mon Sep 17 00:00:00 2001 From: jjLv <1981429112@qq.com> Date: Fri, 16 May 2025 15:57:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9F=E5=A0=82=E6=95=B0=E6=8D=AE=E6=80=BB?= =?UTF-8?q?=E8=A7=88-=E9=80=BB=E8=BE=91=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DataScreeningServiceImpl.java | 26 ++++++++++++++++--- .../core/dataScreening/vo/SingleModelVO.java | 1 + 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/service/DataScreeningServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/service/DataScreeningServiceImpl.java index c8b77aa..c75faca 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/service/DataScreeningServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/service/DataScreeningServiceImpl.java @@ -31,6 +31,7 @@ public class DataScreeningServiceImpl implements DataScreeningService { private static final String ORDER = "Order"; private static final String PERSON = "Person"; private static final String DISH = "Dish"; + private static final int MAX_LAST_DAY = -29; /** * 获取数据总览 @@ -39,10 +40,12 @@ public class DataScreeningServiceImpl implements DataScreeningService { */ @Override public AjaxResult getDataScreeningModel() { + int lastDay = -1; List list = new ArrayList<>(); String currentDate = DateUtils.getDate(); String yesterday = getLastDate(-1); - + //获取上一个有食堂订单的日期 + yesterday = getLastDate(lastDay, yesterday); // 查询各项数据 addSingleItem("今日食堂营业额(元)", currentDate, yesterday, list, 11, TURNOVER); addSingleItem("今日食堂订单量(个)", currentDate, yesterday, list, 11, ORDER); @@ -50,10 +53,27 @@ public class DataScreeningServiceImpl implements DataScreeningService { addSingleItem("今日菜品数量(个)", currentDate, yesterday, list, -1, DISH); addSingleItem("今日超市营业额(元)", currentDate, yesterday, list, 4, TURNOVER); addSingleItem("今日超市订单量(个)", currentDate, yesterday, list, 4, ORDER); - return AjaxResult.success(list); } + /** + * 获取上一个有食堂订单的日期 + * + * @param lastDay 昨日日期 + * @return 昨日日期 + */ + private String getLastDate(int lastDay, String yesterday) { + while (lastDay >= MAX_LAST_DAY) { + yesterday = getLastDate(lastDay); + SingleModelVO yesterdayVO = fetchDataByType(yesterday, 11, TURNOVER); + if (yesterdayVO.getNum().compareTo(BigDecimal.ZERO) != 0) { + break; + } + lastDay--; + } + return yesterday; + } + /** * 添加单项数据 * @@ -67,7 +87,7 @@ public class DataScreeningServiceImpl implements DataScreeningService { private void addSingleItem(String name, String currentDate, String yesterdayData, List list, int orderType, String type) { SingleModelVO today = fetchDataByType(currentDate, orderType, type); SingleModelVO yesterday = fetchDataByType(yesterdayData, orderType, type); - + today.setLastDate(yesterdayData); today.setName(name); calculateRate(today, yesterday, type); list.add(today); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/vo/SingleModelVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/vo/SingleModelVO.java index ca0cc91..4cff073 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/vo/SingleModelVO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/dataScreening/vo/SingleModelVO.java @@ -9,4 +9,5 @@ public class SingleModelVO { private BigDecimal num; private String rate; private String name; + private String lastDate; }