调整餐厅开餐时间

This commit is contained in:
andy 2025-07-03 15:56:29 +08:00
parent 61848a4a82
commit c6738119d1
3 changed files with 46 additions and 11 deletions

View File

@ -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<Integer> 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<String, Map<String, Integer>> 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<String, Map<String, Integer>> 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);
}

View File

@ -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);

View File

@ -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<String, Map<String, Integer>> limitHour = ParamUtils.getCanteenLimitHour();
Map<String, Integer> breakfastLimitMap = limitHour.get(ParamUtils.BREAKFAST_SCOPE);
Map<String, Integer> lunchLimitMap = limitHour.get(ParamUtils.LUNCH_SCOPE);
Map<String, Integer> 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);