From 267cd50858bb889fdd8790cc5a3173245827c1f5 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Thu, 15 May 2025 19:32:36 +0800 Subject: [PATCH] test --- .../core/allocation/api/AllocMealtimeApi.java | 20 + .../constant/DashboardDataKeyEnum.java | 70 +++ .../controller/DatascreenController.java | 75 +++ .../datascreen/dto/DatascreenBaseDTO.java | 125 +++++ .../report/datascreen/dto/DatascreenDTO.java | 29 ++ .../datascreen/dto/v2/DataScreenBaseDTO.java | 42 ++ .../datascreen/mapper/DatascreenMapper.java | 36 ++ .../mapper/DzDevicePassengerFlowMapper.java | 20 + .../service/DatascreenBussService.java | 5 + .../datascreen/service/DatascreenService.java | 14 + .../datascreen/service/DsMetadataService.java | 28 ++ .../impl/DatascreenBussServiceImpl.java | 29 ++ .../service/impl/DatascreenServiceImpl.java | 89 ++++ .../DzDevicePassengerFlowServiceImpl.java | 87 ++++ .../datascreen/vo/CurrentMealtimeVO.java | 28 ++ .../vo/DatascreeDishesDetailVO.java | 28 ++ .../datascreen/vo/DatascreeDishesVO.java | 43 ++ .../datascreen/vo/DatascreenMealNum.java | 56 +++ .../vo/DatascreenMealtimeNumVO.java | 77 ++++ .../vo/DatascreenSexConsumNumVO.java | 46 ++ .../datascreen/vo/DatascreenTimeInfo.java | 57 +++ .../vo/DeviceQueryPresentNumVo.java | 33 ++ .../report/datascreen/vo/DishIntervalNum.java | 44 ++ .../datascreen/vo/DsAuthorityCanteenVO.java | 29 ++ .../vo/DzDevicePassengerFlowVO.java | 23 + .../report/datascreen/vo/TitlePriceNumVO.java | 44 ++ .../report/datascreen/vo/TitleValueVO.java | 30 ++ .../report/model/DevicePassengerFlow.java | 156 +++++++ .../nutrition/HealthBodyRecordMapper.xml | 12 +- .../mapper/report/DatascreenMapper.xml | 428 ++++++++++++++++++ .../report/DzDevicePassengerFlowMapper.xml | 21 + 31 files changed, 1818 insertions(+), 6 deletions(-) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/dashboard/constant/DashboardDataKeyEnum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/controller/DatascreenController.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenBaseDTO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenDTO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/v2/DataScreenBaseDTO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DatascreenMapper.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DzDevicePassengerFlowMapper.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenBussService.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenService.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DsMetadataService.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenBussServiceImpl.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenServiceImpl.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DzDevicePassengerFlowServiceImpl.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/CurrentMealtimeVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesDetailVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealNum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealtimeNumVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenSexConsumNumVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenTimeInfo.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DeviceQueryPresentNumVo.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DishIntervalNum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DsAuthorityCanteenVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DzDevicePassengerFlowVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitlePriceNumVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitleValueVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/model/DevicePassengerFlow.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DatascreenMapper.xml create mode 100644 bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DzDevicePassengerFlowMapper.xml diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/AllocMealtimeApi.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/AllocMealtimeApi.java index 9814f303..bdc03940 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/AllocMealtimeApi.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/AllocMealtimeApi.java @@ -50,6 +50,26 @@ public class AllocMealtimeApi { return mealtimeModelList; } + public AllocMealtimeModel getAssignTimeMealtime(LocalTime assignTime, Long canteenId, Long stallId) { + if (ObjectUtil.isNotNull(stallId) && stallId.equals(0L)) { + stallId = null; + } + + List mealtimeList = this.listUseAvailableMealtime(canteenId, stallId, (Integer)null); + Iterator var5 = mealtimeList.iterator(); + + AllocMealtimeModel mealtime; + do { + if (!var5.hasNext()) { + return null; + } + + mealtime = (AllocMealtimeModel)var5.next(); + } while(assignTime.compareTo(mealtime.getStartTime()) < 0 || assignTime.compareTo(mealtime.getEndTime()) > 0); + + return mealtime; + } + public AllocMealtimeMenuModel getAllocMealtimeMenuModel(Long stallId) { List mealtimeModelList = this.listUseAvailableMealtime((Long)null, stallId, (Integer)null); String ifAllowReserveToday = this.globalMetadataApi.getAvailableValue(MetadataModelTypeEnum.ORDER_RESERVE, "ifAllowReserveToday", (Long)null, stallId); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/dashboard/constant/DashboardDataKeyEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/dashboard/constant/DashboardDataKeyEnum.java new file mode 100644 index 00000000..bc9917b8 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/dashboard/constant/DashboardDataKeyEnum.java @@ -0,0 +1,70 @@ +package com.bonus.canteen.core.report.dashboard.constant; + +import java.util.ArrayList; +import java.util.List; + +public enum DashboardDataKeyEnum { + TODAY_RECIPE_DISH_NUM("todayRecipeDishNum", "今日菜谱菜品数量"), + TODAY_NUM_OF_DINERS("todayNumOfDiners", "今日就餐人数"), + TODAY_NUM_OF_DINER_MEAL("todayNumOfDinerMeal", "今日各餐次就餐人数"), + DISH_THUMB_RANK("dishThumbRank", "菜品点赞排行榜"), + SEVEN_DAY_MOST_POPULAR_STALL("sevenDayMostPopularStall", "近七日最受欢迎档口"), + SEVEN_DAY_CONSUMER_STRUCTURE_SEX("sevenDayConsumerStructure-sex", "近七日消费结构-男女"), + SEVEN_DAY_CONSUMER_STRUCTURE_MEAL("sevenDayConsumerStructure-meal", "近七日消费结构-各餐次"), + SEVEN_DAY_CONSUMER_STRUCTURE_ORG("sevenDayConsumerStructure-org", "近七日消费结构-组织"), + SEVEN_DAY_PRICE_SUMMARY("sevenDayPriceSummary", "近七日价位汇总"), + FOOD_WASTE("foodWaste", "厨余垃圾统计"), + TODAY_DISH_SALE_RANK("todayDishSaleRank", "今日菜品销量排行榜"), + SEVEN_DAY_DISH_SALE_RANK("sevenDayDishSaleRank", "近7日菜品销量排行榜"), + CURRENT_TIME_MEALTIME("currentTimeMealTime", "当前时间餐次"), + CURRENT_TIME_WEATHER("currentTimeWeather", "当前时间天气"), + TODAY_NUM_OF_DINER_MEAL_DINGING_RATE("todayNumOfDinersDiningRate", "今日就餐人数-就餐率"), + TODAY_MENU_DISPLAY("todayMenuDisplay", "菜谱展示"), + TODAY_MOST_POPULAR_STALL("toDayMostPopularStall", "今日最受欢迎档口"), + CANTEN_DINING_PEOPLE("dzCanteenDiningPeople", "食堂就餐人数(客流统计)"); + + private final String key; + private final String desc; + + public static List listKeys() { + DashboardDataKeyEnum[] values = values(); + List keys = new ArrayList(values.length); + DashboardDataKeyEnum[] var2 = values; + int var3 = values.length; + + for(int var4 = 0; var4 < var3; ++var4) { + DashboardDataKeyEnum value = var2[var4]; + keys.add(value.getKey()); + } + + return keys; + } + + public static DashboardDataKeyEnum getEnum(String key) { + DashboardDataKeyEnum[] var1 = values(); + int var2 = var1.length; + + for(int var3 = 0; var3 < var2; ++var3) { + DashboardDataKeyEnum temp = var1[var3]; + if (temp.getKey().equals(key)) { + return temp; + } + } + + return null; + } + + public String getKey() { + return this.key; + } + + public String getDesc() { + return this.desc; + } + + private DashboardDataKeyEnum(final String key, final String desc) { + this.key = key; + this.desc = desc; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/controller/DatascreenController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/controller/DatascreenController.java new file mode 100644 index 00000000..431c1963 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/controller/DatascreenController.java @@ -0,0 +1,75 @@ +package com.bonus.canteen.core.report.datascreen.controller; + +import cn.hutool.core.text.CharSequenceUtil; +import com.bonus.canteen.core.report.datascreen.dto.DatascreenDTO; +import com.bonus.canteen.core.report.datascreen.service.DatascreenService; +import com.bonus.canteen.core.report.datascreen.vo.DsAuthorityCanteenVO; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.houqin.utils.LeRequest; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping({"/datascreen"}) +@Api( + value = "报表中心/数据大屏/前厅版本数据", + tags = {"前厅版本数据"} +) +public class DatascreenController { + private static final Logger log = LoggerFactory.getLogger(DatascreenController.class); + @Autowired + @Lazy + private DatascreenService datascreenService; +// @Autowired +// @Lazy +// private DashboardAuthorityService dashboardAuthorityService; +// @Autowired +// private DashboardService dashboardService; + + @PostMapping({"/getdatascreen"}) + @ApiOperation("获取数据大屏前厅版本数据内容") + public AjaxResult getDatascreenData(@RequestBody DatascreenDTO dto) { + List canteenList = new ArrayList(); +// if (CharSequenceUtil.isNotBlank(content.getAuthorityId())) { +// List authorities = this.dashboardAuthorityService.getDashboardAuthorityBySubject(content.getAuthorityId()); +// authorities.forEach((authority) -> { +// DsAuthorityCanteenVO authorityPair; +// if (CharSequenceUtil.isEmpty(authority.getStallIds())) { +// authorityPair = new DsAuthorityCanteenVO(); +// authorityPair.setCanteenId(authority.getCanteenId()); +// authorityPair.setShopstallId(-1L); +// canteenList.add(authorityPair); +// } else { +// String[] stallIds = authority.getStallIds().split(","); +// String[] var4 = stallIds; +// int var5 = stallIds.length; +// +// for(int var6 = 0; var6 < var5; ++var6) { +// String stallId = var4[var6]; +// authorityPair = new DsAuthorityCanteenVO(); +// authorityPair.setCanteenId(authority.getCanteenId()); +// authorityPair.setShopstallId(Long.valueOf(stallId)); +// canteenList.add(authorityPair); +// } +// +// } +// }); +// } + + DsAuthorityCanteenVO dsAuthorityCanteenVO = new DsAuthorityCanteenVO(); + dsAuthorityCanteenVO.setCanteenId(378928314946949120L); + canteenList.add(dsAuthorityCanteenVO); + return AjaxResult.success(this.datascreenService.getCurrentMealtimeNum(canteenList)); + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenBaseDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenBaseDTO.java new file mode 100644 index 00000000..de48792e --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenBaseDTO.java @@ -0,0 +1,125 @@ +package com.bonus.canteen.core.report.datascreen.dto; + +import com.bonus.canteen.core.order.common.constants.OrderRefundStateEnum; +import com.bonus.canteen.core.order.common.constants.OrderStateEnum; +import com.bonus.canteen.core.pay.common.constants.PayStateEnum; +import com.bonus.canteen.core.report.datascreen.vo.DsAuthorityCanteenVO; +import com.bonus.common.houqin.constant.DelFlagEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@ApiModel +public class DatascreenBaseDTO { + @ApiModelProperty("食堂档口权限集合") + List canteenList; + @ApiModelProperty("启用日期") + private LocalDate applyDate; + @ApiModelProperty("删除状态(正常)") + private Integer delFlag; + @ApiModelProperty("是否为默认(是)") + private Integer isDefault; + @ApiModelProperty("开始时间") + private LocalDateTime beginTime; + @ApiModelProperty("结束时间") + private LocalDateTime endTime; + @ApiModelProperty("支付状态") + private Integer payState; + @ApiModelProperty("订单状态-取消") + private Integer orderState; + @ApiModelProperty("订单退款状态-已退款,部分退款") + private Integer orderRefundState; + @ApiModelProperty("订单明细退菜状态") + private List detailStateList; + + public DatascreenBaseDTO() { + this.delFlag = DelFlagEnum.DEL_FALSE.key(); + this.isDefault = DelFlagEnum.DEL_TRUE.key(); + this.payState = PayStateEnum.PAY_SUCC.getKey(); + this.orderState = OrderStateEnum.CANCEL.getKey(); + this.orderRefundState = OrderRefundStateEnum.FINISH.getKey(); + } + + public List getCanteenList() { + return this.canteenList; + } + + public LocalDate getApplyDate() { + return this.applyDate; + } + + public Integer getDelFlag() { + return this.delFlag; + } + + public Integer getIsDefault() { + return this.isDefault; + } + + public LocalDateTime getBeginTime() { + return this.beginTime; + } + + public LocalDateTime getEndTime() { + return this.endTime; + } + + public Integer getPayState() { + return this.payState; + } + + public Integer getOrderState() { + return this.orderState; + } + + public Integer getOrderRefundState() { + return this.orderRefundState; + } + + public List getDetailStateList() { + return this.detailStateList; + } + + public void setCanteenList(final List canteenList) { + this.canteenList = canteenList; + } + + public void setApplyDate(final LocalDate applyDate) { + this.applyDate = applyDate; + } + + public void setDelFlag(final Integer delFlag) { + this.delFlag = delFlag; + } + + public void setIsDefault(final Integer isDefault) { + this.isDefault = isDefault; + } + + public void setBeginTime(final LocalDateTime beginTime) { + this.beginTime = beginTime; + } + + public void setEndTime(final LocalDateTime endTime) { + this.endTime = endTime; + } + + public void setPayState(final Integer payState) { + this.payState = payState; + } + + public void setOrderState(final Integer orderState) { + this.orderState = orderState; + } + + public void setOrderRefundState(final Integer orderRefundState) { + this.orderRefundState = orderRefundState; + } + + public void setDetailStateList(final List detailStateList) { + this.detailStateList = detailStateList; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenDTO.java new file mode 100644 index 00000000..3985ecfa --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/DatascreenDTO.java @@ -0,0 +1,29 @@ +package com.bonus.canteen.core.report.datascreen.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel +public class DatascreenDTO { + @ApiModelProperty("权限id") + private String authorityId; + @ApiModelProperty("数据模块对应key") + private String key; + + public String getAuthorityId() { + return this.authorityId; + } + + public String getKey() { + return this.key; + } + + public void setAuthorityId(final String authorityId) { + this.authorityId = authorityId; + } + + public void setKey(final String key) { + this.key = key; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/v2/DataScreenBaseDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/v2/DataScreenBaseDTO.java new file mode 100644 index 00000000..9bcb91f9 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/dto/v2/DataScreenBaseDTO.java @@ -0,0 +1,42 @@ +package com.bonus.canteen.core.report.datascreen.dto.v2; + +import com.bonus.canteen.core.report.datascreen.vo.DsAuthorityCanteenVO; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDate; +import java.util.List; + +public class DataScreenBaseDTO { + @ApiModelProperty("食堂档口权限集合") + List canteenList; + @ApiModelProperty("开始时间") + private LocalDate startDate; + @ApiModelProperty("结束时间") + private LocalDate endDate; + + public List getCanteenList() { + return this.canteenList; + } + + public LocalDate getStartDate() { + return this.startDate; + } + + public LocalDate getEndDate() { + return this.endDate; + } + + public DataScreenBaseDTO setCanteenList(final List canteenList) { + this.canteenList = canteenList; + return this; + } + + public DataScreenBaseDTO setStartDate(final LocalDate startDate) { + this.startDate = startDate; + return this; + } + + public DataScreenBaseDTO setEndDate(final LocalDate endDate) { + this.endDate = endDate; + return this; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DatascreenMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DatascreenMapper.java new file mode 100644 index 00000000..2cf94be5 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DatascreenMapper.java @@ -0,0 +1,36 @@ +package com.bonus.canteen.core.report.datascreen.mapper; + +import com.bonus.canteen.core.report.datascreen.dto.DatascreenBaseDTO; +import com.bonus.canteen.core.report.datascreen.dto.v2.DataScreenBaseDTO; +import com.bonus.canteen.core.report.datascreen.vo.*; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface DatascreenMapper { + Integer getDishesNum(@Param("content") DatascreenBaseDTO content, @Param("canteenList") List canteenList); + + List getIntervalDishNum(@Param("content") DatascreenBaseDTO content, @Param("canteenList") List canteenList); + + List getDishSaleList(@Param("param") DataScreenBaseDTO content); + + List getDishThumbUp(@Param("delFlag") Integer delFlag, @Param("canteenList") List canteenList); + + Integer selectTodayDishesSaleNum(@Param("canteenList") List canteenList); + + DatascreenMealtimeNumVO getMealNumSum(@Param("canteenList") List canteenList); + + List getStallMealNumList(@Param("param") DataScreenBaseDTO content); + + DatascreenSexConsumNumVO getSexConsumNum(@Param("param") DataScreenBaseDTO content); + + List getOrgConsumNumList(@Param("param") DataScreenBaseDTO content); + + List getIntervalTypeNum(@Param("param") DataScreenBaseDTO content); + + List getPriceSumList(@Param("param") DataScreenBaseDTO dataScreenBaseDTO); + + List getRecipeDishes(@Param("canteenList") List canteenList); +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DzDevicePassengerFlowMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DzDevicePassengerFlowMapper.java new file mode 100644 index 00000000..4247e533 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/mapper/DzDevicePassengerFlowMapper.java @@ -0,0 +1,20 @@ +package com.bonus.canteen.core.report.datascreen.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bonus.canteen.core.report.datascreen.vo.DeviceQueryPresentNumVo; +import com.bonus.canteen.core.report.model.DevicePassengerFlow; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Set; + +@Mapper +public interface DzDevicePassengerFlowMapper extends BaseMapper { + + List queryPresentNumByCanteenIds(@Param("date") LocalDate dateTime , + @Param("canteenIds") Set canteenIds, + @Param("startTime") LocalDateTime startTime, + @Param("endTime")LocalDateTime endTime); +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenBussService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenBussService.java new file mode 100644 index 00000000..1396f6bb --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenBussService.java @@ -0,0 +1,5 @@ +//package com.bonus.canteen.core.report.datascreen.service; +// +//public interface DatascreenBussService { +// void pushToRedisUserAuthority(String redisName, Object content, Long merchantId, String authorityId); +//} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenService.java new file mode 100644 index 00000000..2360b65b --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DatascreenService.java @@ -0,0 +1,14 @@ +package com.bonus.canteen.core.report.datascreen.service; + +import com.bonus.canteen.core.report.datascreen.dto.DatascreenDTO; +import com.bonus.canteen.core.report.datascreen.vo.CurrentMealtimeVO; +import com.bonus.canteen.core.report.datascreen.vo.DatascreenMealNum; +import com.bonus.canteen.core.report.datascreen.vo.DsAuthorityCanteenVO; +import com.bonus.canteen.core.report.datascreen.vo.TitleValueVO; + +import java.util.List; + +public interface DatascreenService { + public List getCurrentMealtimeNum(List canteenList); + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DsMetadataService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DsMetadataService.java new file mode 100644 index 00000000..4f73f4cc --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/DsMetadataService.java @@ -0,0 +1,28 @@ +//package com.bonus.canteen.core.report.datascreen.service; +// +//import com.bonus.canteen.core.allocation.alloc.model.AllocMetadata; +//import com.bonus.canteen.core.allocation.api.AllocMetadataApi; +//import com.bonus.canteen.core.common.enums.MetadataModelTypeEnum; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Lazy; +//import org.springframework.stereotype.Component; +//import java.util.ArrayList; +//import java.util.List; +// +//@Component +//public class DsMetadataService { +// @Autowired +// @Lazy +// private AllocMetadataApi allocMetadataApi; +// +// public String queryMetadata() { +// return this.allocMetadataApi.getMetadataValue(MetadataModelTypeEnum.REPORT, "ifUseDataScreen"); +// } +// +// public void saveMetadata(String metadata) { +// List payMetadataList = new ArrayList(); +// AllocMetadata payMetadata = new AllocMetadata(MetadataModelTypeEnum.REPORT, "ifUseDataScreen", metadata, (Long)null, (Long)null); +// payMetadataList.add(payMetadata); +// this.allocMetadataApi.saveList(payMetadataList); +// } +//} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenBussServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenBussServiceImpl.java new file mode 100644 index 00000000..026a10bc --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenBussServiceImpl.java @@ -0,0 +1,29 @@ +//package com.bonus.canteen.core.report.datascreen.service.impl; +// +//import cn.hutool.core.text.CharSequenceUtil; +//import com.bonus.canteen.core.report.datascreen.service.DatascreenBussService; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Lazy; +//import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.stereotype.Service; +// +//@Service +//public class DatascreenBussServiceImpl implements DatascreenBussService { +// private static final Logger log = LoggerFactory.getLogger(DatascreenBussServiceImpl.class); +// @Autowired +// @Lazy +// private RedisTemplate redisTemplate; +// +// public void pushToRedisUserAuthority(String redisName, Object content, Long merchantId, String authorityId) { +// StringBuilder sbu = new StringBuilder("yst:"); +// if (CharSequenceUtil.isBlank(authorityId)) { +// sbu.append(merchantId).append(":").append("datascreen:").append("user:").append(redisName); +// } else { +// sbu.append(merchantId).append(":").append("datascreen:").append("user:").append(authorityId).append(":").append(redisName); +// } +// +// this.redisTemplate.opsForValue().set(sbu.toString(), content); +// } +//} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenServiceImpl.java new file mode 100644 index 00000000..ef8d1f25 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DatascreenServiceImpl.java @@ -0,0 +1,89 @@ +package com.bonus.canteen.core.report.datascreen.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.bonus.canteen.core.allocation.api.AllocCanteenApi; +import com.bonus.canteen.core.allocation.api.AllocMealtimeApi; +import com.bonus.canteen.core.allocation.canteen.model.AllocCanteen; +import com.bonus.canteen.core.common.enums.AllocMealtimeTypeEnum; +import com.bonus.canteen.core.common.utils.TenantContextHolder; +import com.bonus.canteen.core.menu.model.AllocMealtimeModel; +import com.bonus.canteen.core.report.dashboard.constant.DashboardDataKeyEnum; +import com.bonus.canteen.core.report.datascreen.dto.DatascreenDTO; +import com.bonus.canteen.core.report.datascreen.dto.v2.DataScreenBaseDTO; +import com.bonus.canteen.core.report.datascreen.mapper.DatascreenMapper; +import com.bonus.canteen.core.report.datascreen.service.DatascreenService; +import com.bonus.canteen.core.report.datascreen.vo.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +@Service +public class DatascreenServiceImpl implements DatascreenService { + private static final Logger log = LoggerFactory.getLogger(DatascreenServiceImpl.class); + @Autowired + @Lazy + private RedisTemplate redisTemplate; + @Autowired + @Lazy + private DatascreenMapper datascreenMapper; + @Autowired + private AllocMealtimeApi allocMealtimeApi; + @Lazy + @Autowired + private AllocCanteenApi allocCanteenApi; + @Autowired + private DzDevicePassengerFlowServiceImpl dzDevicePassengerFlowService; + + /** + * 定制-获取客流量 + */ + public List getCurrentMealtimeNum(List canteenList) { + List list = new ArrayList<>(); + if (CollUtil.isEmpty(canteenList)) { + return list; + } + List canteenIdList = canteenList.stream() + .map(DsAuthorityCanteenVO::getCanteenId) + .distinct() + .collect(Collectors.toList()); + List dzDevicePassengerFlowVOList = dzDevicePassengerFlowService.getDevicePassengerFlowData(canteenList.stream().map(DsAuthorityCanteenVO::getCanteenId).collect(Collectors.toSet())); + //排序使dzDevicePassengerFlowVOList中的canteenId和canteenIdList中的canteenId顺序一致 + List finalDzDevicePassengerFlowVOList = dzDevicePassengerFlowVOList; + dzDevicePassengerFlowVOList = canteenIdList.stream().map(canteen -> finalDzDevicePassengerFlowVOList.stream().filter(e -> e.getCanteenId().equals(canteen)).findFirst().orElse(null)).collect(Collectors.toList()); + dzDevicePassengerFlowVOList.forEach(e -> { + CurrentMealtimeVO mealtimeVO = new CurrentMealtimeVO(); + mealtimeVO.setCanteenId(e.getCanteenId()); + mealtimeVO.setCanteenName(e.getCanteenName()); + Integer presentNum = e.getDiningNum() >= 0 ? e.getDiningNum() : 0; + mealtimeVO.setMealNum(presentNum); + mealtimeVO.setCurrentSeat(e.getRemainingSeats()); + Integer capacity = e.getRemainingSeats() + presentNum; + if (capacity.equals(0)) { + mealtimeVO.setBit(BigDecimal.ZERO); + } else { + if (presentNum > capacity) { + mealtimeVO.setBit(BigDecimal.ONE); + } else { + mealtimeVO.setBit(BigDecimal.valueOf(presentNum).divide(BigDecimal.valueOf(capacity), 3, BigDecimal.ROUND_FLOOR)); + } + } + list.add(mealtimeVO); + }); + return list; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DzDevicePassengerFlowServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DzDevicePassengerFlowServiceImpl.java new file mode 100644 index 00000000..c5f4d566 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/service/impl/DzDevicePassengerFlowServiceImpl.java @@ -0,0 +1,87 @@ +package com.bonus.canteen.core.report.datascreen.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.bonus.canteen.core.allocation.api.AllocCanteenApi; +import com.bonus.canteen.core.allocation.api.AllocMealtimeApi; +import com.bonus.canteen.core.allocation.canteen.model.AllocCanteen; +import com.bonus.canteen.core.common.utils.LogUtil; +import com.bonus.canteen.core.menu.model.AllocMealtimeModel; +import com.bonus.canteen.core.report.datascreen.mapper.DzDevicePassengerFlowMapper; +import com.bonus.canteen.core.report.datascreen.vo.DeviceQueryPresentNumVo; +import com.bonus.canteen.core.report.datascreen.vo.DzDevicePassengerFlowVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +@Service +public class DzDevicePassengerFlowServiceImpl { + @Autowired + @Lazy + private DzDevicePassengerFlowMapper dzDevicePassengerFlowMapper; + @Lazy + @Autowired + private AllocCanteenApi allocCanteenApi; + @Lazy + @Autowired + private AllocMealtimeApi allocMealtimeApi; + + public List getDevicePassengerFlowData(Set canteenIdList) { + List dzDevicePassengerFlowVOS = CollUtil.newArrayList(); + List allocCanteens = allocCanteenApi.queryCanteenByCanteenIdList(canteenIdList); + AllocMealtimeModel assignTimeMealtime = allocMealtimeApi.getAssignTimeMealtime(LocalTime.now(), null, null); + + if (ObjectUtil.isNotEmpty(assignTimeMealtime)) { + LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), assignTimeMealtime.getStartTime()); + LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), assignTimeMealtime.getEndTime()); + List deviceQueryPresentNumVos = dzDevicePassengerFlowMapper.queryPresentNumByCanteenIds(LocalDate.now(), + canteenIdList, startTime, endTime); + Map> collect = deviceQueryPresentNumVos.stream().collect(Collectors.groupingBy(DeviceQueryPresentNumVo::getCanteenId, Collectors.toList())); + for (AllocCanteen allocCanteen : allocCanteens) { + DzDevicePassengerFlowVO deviceQueryPresentNumVo = new DzDevicePassengerFlowVO(); + deviceQueryPresentNumVo.setCanteenId(allocCanteen.getCanteenId()); + deviceQueryPresentNumVo.setCanteenName(allocCanteen.getCanteenName()); + if (collect.containsKey(allocCanteen.getCanteenId())) { + Integer presentNum = collect.get(allocCanteen.getCanteenId()).get(0).getPresentNum(); + if (ObjectUtil.isNotEmpty(allocCanteen.getCapacity()) && presentNum > 0) { + int remainingSeats = allocCanteen.getCapacity() - presentNum; + if (remainingSeats < 0) { + deviceQueryPresentNumVo.setRemainingSeats(0); + } else { + deviceQueryPresentNumVo.setRemainingSeats(remainingSeats); + } + + } else if (ObjectUtil.isEmpty(allocCanteen.getCapacity())) { + deviceQueryPresentNumVo.setRemainingSeats(0); + } else { + deviceQueryPresentNumVo.setRemainingSeats(allocCanteen.getCapacity()); + } + deviceQueryPresentNumVo.setDiningNum(collect.get(allocCanteen.getCanteenId()).get(0).getPresentNum()); + } else { + deviceQueryPresentNumVo.setRemainingSeats(ObjectUtil.isEmpty(allocCanteen.getCapacity()) ? 0 : allocCanteen.getCapacity()); + } + dzDevicePassengerFlowVOS.add(deviceQueryPresentNumVo); + } + LogUtil.info("获取餐厅实时人数成功:", dzDevicePassengerFlowVOS); + return dzDevicePassengerFlowVOS; + } + for (AllocCanteen allocCanteen : allocCanteens) { + DzDevicePassengerFlowVO deviceQueryPresentNumVo = new DzDevicePassengerFlowVO(); + deviceQueryPresentNumVo.setCanteenId(allocCanteen.getCanteenId()); + deviceQueryPresentNumVo.setCanteenName(allocCanteen.getCanteenName()); + deviceQueryPresentNumVo.setRemainingSeats(allocCanteen.getCapacity()); + deviceQueryPresentNumVo.setDiningNum(0); + dzDevicePassengerFlowVOS.add(deviceQueryPresentNumVo); + } + LogUtil.info("获取餐厅实时人数成功:",dzDevicePassengerFlowVOS); + return dzDevicePassengerFlowVOS; + + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/CurrentMealtimeVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/CurrentMealtimeVO.java new file mode 100644 index 00000000..5f156d09 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/CurrentMealtimeVO.java @@ -0,0 +1,28 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class CurrentMealtimeVO { + + @ApiModelProperty(value = "食堂id") + private Long canteenId; + + @ApiModelProperty(value = "食堂名称") + private String canteenName; + + @ApiModelProperty(value = "剩余座位") + private Integer currentSeat; + + @ApiModelProperty(value = "就餐人数") + private Integer mealNum; + + @ApiModelProperty(value = "比列") + private BigDecimal bit; + + @ApiModelProperty(value = "是否在餐次时段 1-是 2-否") + private Integer ifInMealTime; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesDetailVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesDetailVO.java new file mode 100644 index 00000000..c24eaab0 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesDetailVO.java @@ -0,0 +1,28 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import com.bonus.canteen.core.common.utils.SysUtil; +import io.swagger.annotations.ApiModelProperty; + +public class DatascreeDishesDetailVO { + @ApiModelProperty("菜品名称") + private String dishesName; + @ApiModelProperty("菜品图片") + private String imageUrl; + + public String getImageUrl() { + return SysUtil.getCutFileUrl(this.imageUrl); + } + + public String getDishesName() { + return this.dishesName; + } + + public void setDishesName(final String dishesName) { + this.dishesName = dishesName; + } + + public void setImageUrl(final String imageUrl) { + this.imageUrl = imageUrl; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesVO.java new file mode 100644 index 00000000..69e8bbe3 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreeDishesVO.java @@ -0,0 +1,43 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +public class DatascreeDishesVO { + @ApiModelProperty("餐次类型") + private Integer mealtimeType; + @ApiModelProperty("餐次名称") + private String mealtimeName; + @ApiModelProperty("菜品信息") + private List dishList; + + public Integer getMealtimeType() { + return this.mealtimeType; + } + + public String getMealtimeName() { + return this.mealtimeName; + } + + public List getDishList() { + return this.dishList; + } + + public void setMealtimeType(final Integer mealtimeType) { + this.mealtimeType = mealtimeType; + } + + public void setMealtimeName(final String mealtimeName) { + this.mealtimeName = mealtimeName; + } + + public void setDishList(final List dishList) { + this.dishList = dishList; + } + + public String toString() { + Integer var10000 = this.getMealtimeType(); + return "DatascreeDishesVO(mealtimeType=" + var10000 + ", mealtimeName=" + this.getMealtimeName() + ", dishList=" + String.valueOf(this.getDishList()) + ")"; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealNum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealNum.java new file mode 100644 index 00000000..eaed47d0 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealNum.java @@ -0,0 +1,56 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; + +import java.math.BigDecimal; +import java.util.List; + +public class DatascreenMealNum { + @ApiModelProperty("今日就餐人数") + private Integer totalCustNum; + @ApiModelProperty("今日就餐人次") + private Integer totalConsumeNum; + @ApiModelProperty("各餐次就餐人次") + List todayIntervalMealNum; + @ApiModelProperty("就餐率") + private BigDecimal diningRate; + + public Integer getTotalCustNum() { + return this.totalCustNum; + } + + public Integer getTotalConsumeNum() { + return this.totalConsumeNum; + } + + public List getTodayIntervalMealNum() { + return this.todayIntervalMealNum; + } + + public BigDecimal getDiningRate() { + return this.diningRate; + } + + public void setTotalCustNum(final Integer totalCustNum) { + this.totalCustNum = totalCustNum; + } + + public void setTotalConsumeNum(final Integer totalConsumeNum) { + this.totalConsumeNum = totalConsumeNum; + } + + public void setTodayIntervalMealNum(final List todayIntervalMealNum) { + this.todayIntervalMealNum = todayIntervalMealNum; + } + + public void setDiningRate(final BigDecimal diningRate) { + this.diningRate = diningRate; + } + + public DatascreenMealNum(final Integer totalCustNum, final Integer totalConsumeNum, final List todayIntervalMealNum, final BigDecimal diningRate) { + this.totalCustNum = totalCustNum; + this.totalConsumeNum = totalConsumeNum; + this.todayIntervalMealNum = todayIntervalMealNum; + this.diningRate = diningRate; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealtimeNumVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealtimeNumVO.java new file mode 100644 index 00000000..2686f688 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenMealtimeNumVO.java @@ -0,0 +1,77 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; + +public class DatascreenMealtimeNumVO { + @ApiModelProperty("早餐消费人数") + private Integer breakfastCustNum; + @ApiModelProperty("午餐消费人数") + private Integer lunchCustNum; + @ApiModelProperty("下午茶消费人数") + private Integer afternoonCustNum; + @ApiModelProperty("晚餐消费人数") + private Integer dinnerCustNum; + @ApiModelProperty("夜宵消费人数") + private Integer supperCustNum; + @ApiModelProperty("合计消费人数") + private Integer totalCustNum; + @ApiModelProperty("合计消费次数") + private Integer totalConsumeNum; + + public Integer getBreakfastCustNum() { + return this.breakfastCustNum; + } + + public Integer getLunchCustNum() { + return this.lunchCustNum; + } + + public Integer getAfternoonCustNum() { + return this.afternoonCustNum; + } + + public Integer getDinnerCustNum() { + return this.dinnerCustNum; + } + + public Integer getSupperCustNum() { + return this.supperCustNum; + } + + public Integer getTotalCustNum() { + return this.totalCustNum; + } + + public Integer getTotalConsumeNum() { + return this.totalConsumeNum; + } + + public void setBreakfastCustNum(final Integer breakfastCustNum) { + this.breakfastCustNum = breakfastCustNum; + } + + public void setLunchCustNum(final Integer lunchCustNum) { + this.lunchCustNum = lunchCustNum; + } + + public void setAfternoonCustNum(final Integer afternoonCustNum) { + this.afternoonCustNum = afternoonCustNum; + } + + public void setDinnerCustNum(final Integer dinnerCustNum) { + this.dinnerCustNum = dinnerCustNum; + } + + public void setSupperCustNum(final Integer supperCustNum) { + this.supperCustNum = supperCustNum; + } + + public void setTotalCustNum(final Integer totalCustNum) { + this.totalCustNum = totalCustNum; + } + + public void setTotalConsumeNum(final Integer totalConsumeNum) { + this.totalConsumeNum = totalConsumeNum; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenSexConsumNumVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenSexConsumNumVO.java new file mode 100644 index 00000000..57837757 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenSexConsumNumVO.java @@ -0,0 +1,46 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; + +public class DatascreenSexConsumNumVO { + @ApiModelProperty("总消费人数") + private Integer custNum; + @ApiModelProperty("男性人数") + private Integer maleNum; + @ApiModelProperty("女性人数") + private Integer femaleNum; + @ApiModelProperty("未知性别人数") + private Integer otherNum; + + public Integer getCustNum() { + return this.custNum; + } + + public Integer getMaleNum() { + return this.maleNum; + } + + public Integer getFemaleNum() { + return this.femaleNum; + } + + public Integer getOtherNum() { + return this.otherNum; + } + + public void setCustNum(final Integer custNum) { + this.custNum = custNum; + } + + public void setMaleNum(final Integer maleNum) { + this.maleNum = maleNum; + } + + public void setFemaleNum(final Integer femaleNum) { + this.femaleNum = femaleNum; + } + + public void setOtherNum(final Integer otherNum) { + this.otherNum = otherNum; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenTimeInfo.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenTimeInfo.java new file mode 100644 index 00000000..506475df --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DatascreenTimeInfo.java @@ -0,0 +1,57 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; + +public class DatascreenTimeInfo { + @ApiModelProperty("当前时间") + private String currentTime; + @ApiModelProperty("当前日期") + private String currentDate; + @ApiModelProperty("当前餐次") + private String currentMealTime; + @ApiModelProperty("当前天气") + private String currentWeather; + + public String getCurrentTime() { + return this.currentTime; + } + + public String getCurrentDate() { + return this.currentDate; + } + + public String getCurrentMealTime() { + return this.currentMealTime; + } + + public String getCurrentWeather() { + return this.currentWeather; + } + + public void setCurrentTime(final String currentTime) { + this.currentTime = currentTime; + } + + public void setCurrentDate(final String currentDate) { + this.currentDate = currentDate; + } + + public void setCurrentMealTime(final String currentMealTime) { + this.currentMealTime = currentMealTime; + } + + public void setCurrentWeather(final String currentWeather) { + this.currentWeather = currentWeather; + } + + + public DatascreenTimeInfo() { + } + + public DatascreenTimeInfo(final String currentTime, final String currentDate, final String currentMealTime, final String currentWeather) { + this.currentTime = currentTime; + this.currentDate = currentDate; + this.currentMealTime = currentMealTime; + this.currentWeather = currentWeather; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DeviceQueryPresentNumVo.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DeviceQueryPresentNumVo.java new file mode 100644 index 00000000..5da4185d --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DeviceQueryPresentNumVo.java @@ -0,0 +1,33 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModelProperty; + +public class DeviceQueryPresentNumVo { + @ApiModelProperty("食堂id") + private Long canteenId; + @ApiModelProperty("客流量") + private Integer presentNum; + + public Long getCanteenId() { + return this.canteenId; + } + + public Integer getPresentNum() { + return this.presentNum; + } + + public DeviceQueryPresentNumVo setCanteenId(final Long canteenId) { + this.canteenId = canteenId; + return this; + } + + public DeviceQueryPresentNumVo setPresentNum(final Integer presentNum) { + this.presentNum = presentNum; + return this; + } + + public String toString() { + Long var10000 = this.getCanteenId(); + return "DeviceQueryPresentNumVo(canteenId=" + var10000 + ", presentNum=" + this.getPresentNum() + ")"; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DishIntervalNum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DishIntervalNum.java new file mode 100644 index 00000000..fec8a60e --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DishIntervalNum.java @@ -0,0 +1,44 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import com.bonus.canteen.core.common.enums.AllocMealtimeTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel +public class DishIntervalNum { + @ApiModelProperty("餐次名称") + private String intervalName; + @ApiModelProperty("餐次类型-和早中晚对应") + private Integer intervalType; + @ApiModelProperty("总数") + private Integer totalNum; + + public String getIntervalName() { + return AllocMealtimeTypeEnum.getDescByKey(this.intervalType); + } + + public Integer getIntervalType() { + return this.intervalType; + } + + public Integer getTotalNum() { + return this.totalNum; + } + + public void setIntervalName(final String intervalName) { + this.intervalName = intervalName; + } + + public void setIntervalType(final Integer intervalType) { + this.intervalType = intervalType; + } + + public void setTotalNum(final Integer totalNum) { + this.totalNum = totalNum; + } + + public String toString() { + String var10000 = this.getIntervalName(); + return "DishIntervalNum(intervalName=" + var10000 + ", intervalType=" + this.getIntervalType() + ", totalNum=" + this.getTotalNum() + ")"; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DsAuthorityCanteenVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DsAuthorityCanteenVO.java new file mode 100644 index 00000000..05e0eb6d --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DsAuthorityCanteenVO.java @@ -0,0 +1,29 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel("大屏食堂配置返回") +public class DsAuthorityCanteenVO { + @ApiModelProperty("食堂id") + private Long canteenId; + @ApiModelProperty("档口id") + private Long shopstallId; + + public Long getCanteenId() { + return this.canteenId; + } + + public Long getShopstallId() { + return this.shopstallId; + } + + public void setCanteenId(final Long canteenId) { + this.canteenId = canteenId; + } + + public void setShopstallId(final Long shopstallId) { + this.shopstallId = shopstallId; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DzDevicePassengerFlowVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DzDevicePassengerFlowVO.java new file mode 100644 index 00000000..6b74a966 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/DzDevicePassengerFlowVO.java @@ -0,0 +1,23 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import lombok.Data; + +@Data +public class DzDevicePassengerFlowVO { + /** + * 食堂id + */ + private Long canteenId; + /** + * 食堂名称 + */ + private String canteenName; + /** + * 剩余座位(食堂容纳人数-进场人数) + */ + private Integer remainingSeats = 0; + /** + * 就餐人数(进场人数) + */ + private Integer diningNum = 0; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitlePriceNumVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitlePriceNumVO.java new file mode 100644 index 00000000..d994ee11 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitlePriceNumVO.java @@ -0,0 +1,44 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel +public class TitlePriceNumVO { + @ApiModelProperty("名称") + private String title; + @ApiModelProperty("价格") + private String price; + @ApiModelProperty("数量") + private String number; + + public String getTitle() { + return this.title; + } + + public String getPrice() { + return this.price; + } + + public String getNumber() { + return this.number; + } + + public void setTitle(final String title) { + this.title = title; + } + + public void setPrice(final String price) { + this.price = price; + } + + public void setNumber(final String number) { + this.number = number; + } + + + public String toString() { + String var10000 = this.getTitle(); + return "TitlePriceNumVO(title=" + var10000 + ", price=" + this.getPrice() + ", number=" + this.getNumber() + ")"; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitleValueVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitleValueVO.java new file mode 100644 index 00000000..6e2d4f49 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/datascreen/vo/TitleValueVO.java @@ -0,0 +1,30 @@ +package com.bonus.canteen.core.report.datascreen.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel +public class TitleValueVO { + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("数量/值") + private String value; + + public String getTitle() { + return this.title; + } + + public String getValue() { + return this.value; + } + + public void setTitle(final String title) { + this.title = title; + } + + public void setValue(final String value) { + this.value = value; + } + + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/model/DevicePassengerFlow.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/model/DevicePassengerFlow.java new file mode 100644 index 00000000..61e1201e --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/model/DevicePassengerFlow.java @@ -0,0 +1,156 @@ +package com.bonus.canteen.core.report.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +@ApiModel("存储客流数据实体") +@TableName("device_passenger_flow") +public class DevicePassengerFlow { + @ApiModelProperty("开始时间") + private LocalDateTime startTime; + @ApiModelProperty("结束时间") + private String endTime = ""; + @ApiModelProperty("进入客流数量【由店外到店内经过相机视场】") + private Integer enters = 0; + @ApiModelProperty("离开客流数量【由店内到店外经过相机视场】") + private Integer exits = 0; + @ApiModelProperty("店外经过客流数量【由店外进入又离开相机视场】") + private Integer passings = 0; + @ApiModelProperty("店内折返客流数量【由店内进入相机视场,又离开相机视场回到店内】") + private Integer returns = 0; + @ApiModelProperty("设备sn") + private String serialNumber = ""; + @ApiModelProperty("设备名称") + private String deviceName = ""; + @ApiModelProperty("设备ip") + private String deviceIp = ""; + @ApiModelProperty("id") + private Long id; + @ApiModelProperty("创建日期") + private LocalDate createDate; + @ApiModelProperty("创建时间") + private LocalDateTime createTime; + @ApiModelProperty("食堂id") + private Long canteenId; + + public LocalDateTime getStartTime() { + return this.startTime; + } + + public String getEndTime() { + return this.endTime; + } + + public Integer getEnters() { + return this.enters; + } + + public Integer getExits() { + return this.exits; + } + + public Integer getPassings() { + return this.passings; + } + + public Integer getReturns() { + return this.returns; + } + + public String getSerialNumber() { + return this.serialNumber; + } + + public String getDeviceName() { + return this.deviceName; + } + + public String getDeviceIp() { + return this.deviceIp; + } + + public Long getId() { + return this.id; + } + + public LocalDate getCreateDate() { + return this.createDate; + } + + public LocalDateTime getCreateTime() { + return this.createTime; + } + + public Long getCanteenId() { + return this.canteenId; + } + + public DevicePassengerFlow setStartTime(final LocalDateTime startTime) { + this.startTime = startTime; + return this; + } + + public DevicePassengerFlow setEndTime(final String endTime) { + this.endTime = endTime; + return this; + } + + public DevicePassengerFlow setEnters(final Integer enters) { + this.enters = enters; + return this; + } + + public DevicePassengerFlow setExits(final Integer exits) { + this.exits = exits; + return this; + } + + public DevicePassengerFlow setPassings(final Integer passings) { + this.passings = passings; + return this; + } + + public DevicePassengerFlow setReturns(final Integer returns) { + this.returns = returns; + return this; + } + + public DevicePassengerFlow setSerialNumber(final String serialNumber) { + this.serialNumber = serialNumber; + return this; + } + + public DevicePassengerFlow setDeviceName(final String deviceName) { + this.deviceName = deviceName; + return this; + } + + public DevicePassengerFlow setDeviceIp(final String deviceIp) { + this.deviceIp = deviceIp; + return this; + } + + public DevicePassengerFlow setId(final Long id) { + this.id = id; + return this; + } + + public DevicePassengerFlow setCreateDate(final LocalDate createDate) { + this.createDate = createDate; + return this; + } + + public DevicePassengerFlow setCreateTime(final LocalDateTime createTime) { + this.createTime = createTime; + return this; + } + + public DevicePassengerFlow setCanteenId(final Long canteenId) { + this.canteenId = canteenId; + return this; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/nutrition/HealthBodyRecordMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/nutrition/HealthBodyRecordMapper.xml index 12a0fd19..561ee3e2 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/nutrition/HealthBodyRecordMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/nutrition/HealthBodyRecordMapper.xml @@ -35,9 +35,9 @@ AND ( c.cust_num = #{param.keyword} - OR c.cust_name = #{param.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler} - OR c.mobile = #{param.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler} - or c.mobile_suffix = #{param.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler} + OR c.cust_name = #{param.keyword,typeHandler=com.bonus.canteen.core.common.encrypt.SM4EncDecHandler} + OR c.mobile = #{param.keyword,typeHandler=com.bonus.canteen.core.common.encrypt.SM4EncDecHandler} + or c.mobile_suffix = #{param.keyword,typeHandler=com.bonus.canteen.core.common.encrypt.SM4EncDecHandler} ) @@ -87,9 +87,9 @@ AND ( c.cust_num = #{param.keyword} - OR c.cust_name = #{param.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler} - OR c.mobile = #{param.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler} - OR c.mobile_suffix = #{param.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler} + OR c.cust_name = #{param.keyword,typeHandler=com.bonus.canteen.core.common.encrypt.SM4EncDecHandler} + OR c.mobile = #{param.keyword,typeHandler=com.bonus.canteen.core.common.encrypt.SM4EncDecHandler} + OR c.mobile_suffix = #{param.keyword,typeHandler=com.bonus.canteen.core.common.encrypt.SM4EncDecHandler} ) diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DatascreenMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DatascreenMapper.xml new file mode 100644 index 00000000..236a5750 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DatascreenMapper.xml @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DzDevicePassengerFlowMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DzDevicePassengerFlowMapper.xml new file mode 100644 index 00000000..52ea70c8 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/DzDevicePassengerFlowMapper.xml @@ -0,0 +1,21 @@ + + + + + +