From 4482d05ff49532d22375a33f9f6c112d983cd498 Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Mon, 12 Jan 2026 18:52:12 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=9C=88=E8=96=AA=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=B8=BA=E7=AC=AC=E4=BA=8C=E5=A4=A9=E5=87=8C=E6=99=A83?= =?UTF-8?q?=E7=82=B9=E4=B9=8B=E5=89=8D=E5=8F=AF=E6=89=93=E4=B8=8B=E7=8F=AD?= =?UTF-8?q?=E5=8D=A1=202.=20=E6=97=A5=E8=96=AA=E5=8F=96=E6=B6=88=E6=9C=80?= =?UTF-8?q?=E5=A4=A74=E5=B0=8F=E6=97=B6=E5=8A=A0=E7=8F=AD=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KQDeviceExchangeProcessor.java | 23 +++++++++++++++---- .../impl/RzAttendanceDetailServiceImpl.java | 1 - .../java/com/evo/common/utils/ParamUtils.java | 18 +++++++++++++-- .../src/main/resources/application-dev.yml | 2 +- .../src/main/resources/application-local.yml | 2 +- .../src/main/resources/kdwebapi.properties | 3 ++- 6 files changed, 38 insertions(+), 11 deletions(-) diff --git a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java index 68d73e4..409c09d 100644 --- a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java @@ -109,7 +109,20 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP } public Boolean showButton(SysStaffDetail detail){ - return (detail.getBasicSalary() != null && detail.getBasicSalary().compareTo(new BigDecimal(0)) > 0) && (detail.getJobsSalary() != null && detail.getJobsSalary().compareTo(new BigDecimal(0)) > 0) && (!checkToDayCard(String.valueOf(detail.getStaffId()), "上班") && !checkToDayCard(String.valueOf(detail.getStaffId()),"加班")); + //return (detail.getBasicSalary() != null && detail.getBasicSalary().compareTo(new BigDecimal(0)) > 0) && (detail.getJobsSalary() != null && detail.getJobsSalary().compareTo(new BigDecimal(0)) > 0) && (!checkToDayCard(String.valueOf(detail.getStaffId()), "上班") && !checkToDayCard(String.valueOf(detail.getStaffId()),"加班")); + //首先得是月薪 + if((detail.getBasicSalary() != null && detail.getBasicSalary().compareTo(new BigDecimal(0)) > 0) && (detail.getJobsSalary() != null && detail.getJobsSalary().compareTo(new BigDecimal(0)) > 0)){ + //其次, 判断当前时间是否<限定时间 + Date date = new Date(); + //获取当前小时 + if(date.getHours() <= ParamUtils.getLimitMonthOffDutyHour()){ + //获取当前时间的前一天的情况 + return ((!checkToDayCard(String.valueOf(detail.getStaffId()), "上班", DateUtils.addDays(date, -1)) && !checkToDayCard(String.valueOf(detail.getStaffId()),"加班", DateUtils.addDays(date, -1)))); + }else{ + return ((!checkToDayCard(String.valueOf(detail.getStaffId()), "上班", date) && !checkToDayCard(String.valueOf(detail.getStaffId()),"加班", date))); + } + } + return false; } @Override @@ -128,11 +141,11 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP * 2.考勤出现漏打卡,次日可以正常打卡(8小时制员工)】 其中8小时制员工 为单班制打卡 */ //上班卡 - if(rules.contains("上班") && checkToDayCard(userId, "上班")){ + if(rules.contains("上班") && checkToDayCard(userId, "上班", date)){ return initMessage(1, "当天已经打过上班卡"); } //上班卡 - if(rules.contains("加班") && checkToDayCard(userId, "加班")){ + if(rules.contains("加班") && checkToDayCard(userId, "加班", date)){ return initMessage(1, "当天已经打过加班卡"); } @@ -196,12 +209,12 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP return initMessage(1, "打卡失败"); } - public Boolean checkToDayCard(String userId, String rules){ + public Boolean checkToDayCard(String userId, String rules, Date date){ return ObjectUtils.isNotEmpty(rzAttendanceDetailService.getOne(new LambdaQueryWrapper() .like(RzAttendanceDetail::getButtonType,"%"+rules+"%") .eq(RzAttendanceDetail::getStaffId, Long.valueOf(userId)) .eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0) - .apply(" date_format(date_time,'%Y%m%d') = date_format({0},'%Y%m%d') ", new Date()))); + .apply(" date_format(date_time,'%Y%m%d') = date_format({0},'%Y%m%d') ", date))); } diff --git a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java index e20c915..b86b805 100644 --- a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java @@ -137,7 +137,6 @@ public class RzAttendanceDetailServiceImpl extends ServiceImpl holidayDates = Collections.emptyList(); 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 982a6b6..e78ee43 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 @@ -129,7 +129,7 @@ public class ParamUtils { } /*** - * 获取日薪全勤天数 + * 段休扣减时长 * @return */ public static String getShortBreakDeductionMinutes(String type){ @@ -210,7 +210,12 @@ public class ParamUtils { RzSysParam param= paramService.getRzSysParam("特殊加班的考勤规则", "device_over_time_rules","{\"ET74336\":{\"minHour\":2, \"maxHour\":3,\"endMealTime\":\"19:00\"}}","特殊加班的考勤规则, minHour:最小加班时长. maxHour: 最大加班时长, endMealTime: 餐厅闭厅时间"); JSONObject jsonObject = JSONObject.parseObject(param.getParamValue()); JSONObject rules = jsonObject.getJSONObject(sn); - return (ObjectUtils.isEmpty(rules) ? JSONObject.parseObject("{\"maxHour\":4}") : rules); + return (ObjectUtils.isEmpty(rules) ? getDefaultMaxOverTime(): rules); + } + + private static JSONObject getDefaultMaxOverTime(){ + RzSysParam param= paramService.getRzSysParam("默认最大加班时长", "default_max_over_time_rules","{\"maxHour\":12}","最大加班时长"); + return JSONObject.parseObject(param.getParamValue()); } /*** @@ -355,6 +360,15 @@ public class ParamUtils { return Boolean.valueOf(param.getParamValue()); } + /*** + * 获取月薪下班卡截止时间 + * @return + */ + public static Integer getLimitMonthOffDutyHour(){ + RzSysParam param= paramService.getRzSysParam("月薪下班卡截止时间", "limit_month_off_duty_hour","3","月薪下班卡截止时间"); + return Integer.valueOf(param.getParamValue()); + } + public static RzSysParam getRzSysParam(String code){ return paramService.getRzSysParam(code); } diff --git a/evo-admin/src/main/resources/application-dev.yml b/evo-admin/src/main/resources/application-dev.yml index 7602d53..4c9c6c2 100644 --- a/evo-admin/src/main/resources/application-dev.yml +++ b/evo-admin/src/main/resources/application-dev.yml @@ -7,7 +7,7 @@ spring: # 热部署开关 redis: # 地址 - host: 192.168.16.128 + host: 192.168.5.112 # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/evo-admin/src/main/resources/application-local.yml b/evo-admin/src/main/resources/application-local.yml index cf8e499..d839287 100644 --- a/evo-admin/src/main/resources/application-local.yml +++ b/evo-admin/src/main/resources/application-local.yml @@ -7,7 +7,7 @@ spring: # 热部署开关 redis: # 地址 - host: 192.168.16.128 + host: 192.168.5.112 # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/evo-admin/src/main/resources/kdwebapi.properties b/evo-admin/src/main/resources/kdwebapi.properties index cea9c28..6f2c788 100644 --- a/evo-admin/src/main/resources/kdwebapi.properties +++ b/evo-admin/src/main/resources/kdwebapi.properties @@ -1,5 +1,6 @@ #??ID-PROD -X-KDApi-AcctID = 670768a85463de +#X-KDApi-AcctID = 670768a85463de +X-KDApi-AcctID = 695f86f96090b2 #X-KDApi-AcctID = 6723465a38c722 X-KDApi-UserName = Administrator #??IDID