From c6738119d124b511320f37bfc6303f51610bf23f Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Thu, 3 Jul 2025 15:56:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A4=90=E5=8E=85=E5=BC=80?= =?UTF-8?q?=E9=A4=90=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/evo/common/utils/ParamUtils.java | 40 ++++++++++++++++--- .../framework/websocket/WebSocketServer.java | 2 +- .../impl/RzRestaurantDetailServiceImpl.java | 15 +++++-- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java b/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java index 0d4204c..6785121 100644 --- a/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java +++ b/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java @@ -1,6 +1,5 @@ package com.evo.common.utils; -import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.evo.attendance.domain.RzSysParam; import com.evo.attendance.service.IRzSysParamService; @@ -12,8 +11,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; @@ -38,7 +35,18 @@ public class ParamUtils { private static ISysDictDataService dictDataService; private static IRzHolidayService rzHolidayService; - + /** + * 早餐 + */ + public static String BREAKFAST_SCOPE = "早餐"; + /** + * 午餐 + */ + public static String LUNCH_SCOPE = "午餐"; + /** + * 晚餐 + */ + public static String DINNER_SCOPE = "晚餐"; @Autowired public ParamUtils(IRzSysParamService paramService, ISysDictDataService dictDataService,IRzHolidayService rzHolidayService) { this.paramService = paramService; @@ -46,6 +54,27 @@ public class ParamUtils { this.rzHolidayService = rzHolidayService; } + /*** + * 获取餐厅的开放时间 + * @return + */ + public static List getCanteenOpenHour(){ + RzSysParam param= paramService.getRzSysParam("餐厅的开放就餐时间", "canteen_open_hour","7,8,11,12,13,17,18,19,20","餐厅的开放就餐时间, 多个时间用,间隔"); + return Collections.asList(param.getParamValue().split(",")).stream().filter(StringUtils::isNotEmpty).map(Integer::valueOf).collect(Collectors.toList()); + } + public static Map> getCanteenLimitHour(){ + RzSysParam param= paramService.getRzSysParam("餐厅的开放就餐时间", "canteen_limit_hour","{\""+BREAKFAST_SCOPE+"\":\"6~9\", \""+LUNCH_SCOPE+"\":\"11~14\", \""+DINNER_SCOPE+"\":\"17~20\"}","餐厅的开放就餐时间, 多个时间用,间隔"); + JSONObject jsonObject = JSONObject.parseObject(param.getParamValue()); + String[] breakfastScope = jsonObject.getString(BREAKFAST_SCOPE).split("~"); + String[] lunchScope = jsonObject.getString(LUNCH_SCOPE).split("~"); + String[] dinnerScope = jsonObject.getString(DINNER_SCOPE).split("~"); + Map> result = Collections.emptyMap(); + result.put(BREAKFAST_SCOPE, Collections.asMap("minHour", Integer.valueOf(breakfastScope[0]),"maxHour",Integer.valueOf(breakfastScope[1]))); + result.put(LUNCH_SCOPE,Collections.asMap("minHour",Integer.valueOf(lunchScope[0]),"maxHour",Integer.valueOf(lunchScope[1]))); + result.put(DINNER_SCOPE,Collections.asMap("minHour",Integer.valueOf(dinnerScope[0]),"maxHour",Integer.valueOf(dinnerScope[1]))); + return result; + } + public static String getLimitSubsidyDay(){ RzSysParam param= paramService.getRzSysParam("月中转正的补助限制日期", "limit_subsidy_day","10","月中转正的补助限制日期; 如value填写的为10. 则10号之前转正有补助, 10号之后转正没有补助"); return param.getParamValue(); @@ -145,8 +174,7 @@ public class ParamUtils { public static JSONObject getDeviceOverTimeRules(String sn){ if(StringUtils.isEmpty(sn)) return null; RzSysParam param= paramService.getRzSysParam("特殊加班的考勤规则", "device_over_time_rules","{\"ET74336\":{\"minHour\":2, \"maxHour\":3,\"endMealTime\":\"19:00\"}}","特殊加班的考勤规则, minHour:最小加班时长. maxHour: 最大加班时长, endMealTime: 餐厅闭厅时间"); - String val = param.getParamValue(); - JSONObject jsonObject = JSONObject.parseObject(val); + JSONObject jsonObject = JSONObject.parseObject(param.getParamValue()); JSONObject rules = jsonObject.getJSONObject(sn); return (ObjectUtils.isEmpty(rules) ? JSONObject.parseObject("{\"maxHour\":4}") : rules); } diff --git a/evo-admin/src/main/java/com/evo/framework/websocket/WebSocketServer.java b/evo-admin/src/main/java/com/evo/framework/websocket/WebSocketServer.java index 58fdc1a..e8245a2 100644 --- a/evo-admin/src/main/java/com/evo/framework/websocket/WebSocketServer.java +++ b/evo-admin/src/main/java/com/evo/framework/websocket/WebSocketServer.java @@ -170,7 +170,7 @@ public class WebSocketServer{ //发送设备按钮信息 snDetailService.sendButtons(Collections.asList(snDetail.getSn())); //发送照片 - snDetailService.sendPhoto(Collections.asList(snDetail.getSn()), null); +// snDetailService.sendPhoto(Collections.asList(snDetail.getSn()), null); }else{ //接受设备端返回的数据,先不做处理 System.out.println("设备返回信息:"+message); diff --git a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java index 09d9f16..5073cd4 100644 --- a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.evo.common.constant.Constants; import com.evo.common.core.domain.AjaxResult; import com.evo.common.utils.DateUtils; +import com.evo.common.utils.ParamUtils; import com.evo.common.utils.SecurityUtils; import com.evo.common.utils.StringUtils; import com.evo.restaurant.domain.RzRestaurantDetail; @@ -22,6 +23,7 @@ import javax.annotation.Resource; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Map; /** * 餐饮详情Service业务层处理 @@ -71,7 +73,8 @@ public class RzRestaurantDetailServiceImpl implements IRzRestaurantDetailService int hour = calendar.get(Calendar.HOUR_OF_DAY); //判断是否在就餐时间,如果在就餐时间打卡有效,否则打卡无效 - if(hour!=7&&hour!=8&&hour!=11&&hour!=12&&hour!=13&&hour!=18&&hour!=19&&hour!=20){ + //if(hour!=7&&hour!=8&&hour!=11&&hour!=12&&hour!=13&&hour!=18&&hour!=19&&hour!=20){ + if(!ParamUtils.getCanteenOpenHour().contains(hour)){ cfiv.setResult(2); cfiv.setMsg("{\"Result\":1,\"Msg\":\"不在打卡时间内\"}"); return JSONObject.toJSONString(cfiv); @@ -109,15 +112,19 @@ public class RzRestaurantDetailServiceImpl implements IRzRestaurantDetailService cyFaceInfo.setName(restaurantStatistics.getName()); cyFaceInfo.setTime(new Date()); //判断刷脸时间是早餐还是午餐还是晚餐 - if(hour>6&&hour<9){ + Map> limitHour = ParamUtils.getCanteenLimitHour(); + Map breakfastLimitMap = limitHour.get(ParamUtils.BREAKFAST_SCOPE); + Map lunchLimitMap = limitHour.get(ParamUtils.LUNCH_SCOPE); + Map dinnerLimitMap = limitHour.get(ParamUtils.DINNER_SCOPE); + if(breakfastLimitMap.get("minHour") < hour && hour < breakfastLimitMap.get("maxHour")){ //说明是早餐 cyFaceInfo.setSign("早餐"); restaurantStatistics.setBreakfastNumber(restaurantStatistics.getBreakfastNumber() + 1); - }else if(hour>=11&&hour<=14){ + }else if(lunchLimitMap.get("minHour") <= hour && hour <= lunchLimitMap.get("maxHour")){ //说明是午餐 cyFaceInfo.setSign("午餐"); restaurantStatistics.setLunchNumber(restaurantStatistics.getLunchNumber() + 1); - }else if(hour>=18&&hour<=20){ + }else if(dinnerLimitMap.get("minHour") <= hour && hour <= dinnerLimitMap.get("maxHour")){ //说明是晚餐 cyFaceInfo.setSign("晚餐"); restaurantStatistics.setSupperNumber(restaurantStatistics.getSupperNumber() + 1);