From ea9153f420654ddb0c3f222875e8d0119c41f266 Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Mon, 21 Oct 2024 19:35:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=A0=E7=8F=AD=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E5=BC=82=E5=B8=B8bug=EF=BC=8C=E5=81=87=E6=9C=9F?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E5=A2=9E=E5=8A=A0=E7=A6=BB=E8=81=8C=E5=90=8E?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=A6=BB=E8=81=8C=E6=97=A5=E6=9C=9F=E6=8A=98?= =?UTF-8?q?=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workovertime/GetOvertimeDurationCmd.java | 8 ++++---- .../attendance/vacation/cmd/VocationCmd.java | 12 +++++++++++- .../tactics/ByIntervalPayMentWay.java | 3 +++ .../tactics/BySchedulePaymentWay.java | 3 +++ .../tactics/OneTimePayMentWay.java | 4 ++++ .../tactics/SinglePaymentInFullWay.java | 4 +++- .../vacation/util/VocationCommonUtil.java | 19 +++++++++++++++++++ 7 files changed, 47 insertions(+), 6 deletions(-) diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java index d23b650..3ebe33d 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java @@ -171,7 +171,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand> beLateAbnormal = abnormalClockInList.stream().filter(e -> e.get("pointTime").equals(kssj)).collect(Collectors.toList()); + List> beLateAbnormal = abnormalClockInList.stream().filter(e -> e.get("pointTime").equals(kssj) && e.get("bdlx").equals(scheduleMap.get("bdlx"))).collect(Collectors.toList()); double beLateTime = 0; if (beLateAbnormal.size() > 0) { String hsdw = Util.null2String(beLateAbnormal.get(0).get("hsdw")); @@ -198,7 +198,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand 0) { beLateTime = DateUtil.getBetWeenMinutes(kssjTime, realityStartTime); - List> collect1 = anomalyList.stream().filter(e -> e.get("pointTime").equals(kssj)).collect(Collectors.toList()); + List> collect1 = anomalyList.stream().filter(e -> e.get("pointTime").equals(kssj) && e.get("bdlx").equals(scheduleMap.get("bdlx"))).collect(Collectors.toList()); if (!"".equals(jbwdhlfzs) && beLateTime < Integer.valueOf(jbwdhlfzs)) { beLateTime = 0; @@ -213,7 +213,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand> leaveEarlyAbnormal = abnormalClockInList.stream().filter(e -> e.get("pointTime").equals(jssj)).collect(Collectors.toList()); + List> leaveEarlyAbnormal = abnormalClockInList.stream().filter(e -> e.get("pointTime").equals(jssj) && e.get("bdlx").equals(scheduleMap.get("bdlx"))).collect(Collectors.toList()); double leaveElaryTime = 0; if (leaveEarlyAbnormal.size() > 0) { String hsdw = Util.null2String(leaveEarlyAbnormal.get(0).get("hsdw")); @@ -242,7 +242,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand> collect2 = anomalyList.stream().filter(e -> e.get("pointTime").equals(jssj)).collect(Collectors.toList()); + List> collect2 = anomalyList.stream().filter(e -> e.get("pointTime").equals(jssj) && e.get("bdlx").equals(scheduleMap.get("bdlx")) ).collect(Collectors.toList()); if (!"".equals(jbzzhlfzs) && leaveElaryTime < Integer.valueOf(jbzzhlfzs)) { leaveElaryTime = 0; } diff --git a/src/com/engine/jucailinkq/attendance/vacation/cmd/VocationCmd.java b/src/com/engine/jucailinkq/attendance/vacation/cmd/VocationCmd.java index d58d4b3..36ec4e4 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/cmd/VocationCmd.java +++ b/src/com/engine/jucailinkq/attendance/vacation/cmd/VocationCmd.java @@ -42,9 +42,11 @@ public class VocationCmd extends AbstractCommonCommand> { String qsrq = Util.null2String(vocation.get("qsrq")).toLowerCase(); String yjzd = Util.null2String(vocation.get("yjzd")).toLowerCase(); String ljcrglyfslwz = Util.null2String(vocation.get("ljcrglyfslwz")); + String jzrqzd = Util.null2String(vocation.get("jzrqzd")); String qsrqValue = Util.null2String(userMap.get(qsrq)); String yjzdValue = Util.null2String(userMap.get(yjzd)); String ljcrglyfslwzValue = Util.null2String(userMap.get(ljcrglyfslwz)); + String jzrqzdValue = Util.null2String(userMap.get(jzrqzd)); if ("".equals(qsrqValue)){ for (Map map: userList){ qsrqValue = Util.null2String(map.get(qsrq)); @@ -69,8 +71,16 @@ public class VocationCmd extends AbstractCommonCommand> { } } } + if ("".equals(jzrqzdValue)){ + for (Map map: userList){ + jzrqzdValue = Util.null2String(map.get(jzrqzd)); + if (!"".equals(jzrqzdValue)){ + break; + } + } + } - + vocation.put("jzrqzdValue",jzrqzdValue); vocation.put("qsrqValue",qsrqValue); vocation.put("yjzdValue",yjzdValue); vocation.put("ljcrglyfslwzValue",ljcrglyfslwzValue); diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java index e9c9b67..0388b37 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java @@ -261,6 +261,9 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ } insertHoliDayParam.put("ktsc", restTime); + //截止日期 + String jzrqzd = Util.null2String(vocationList.get(0).get("jzrqzdValue")); + VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd); VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,edyxq); return insertHoliDayParam; diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java index 774e7a0..7aa4872 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java @@ -179,6 +179,9 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ } insertHoliDayParam.put("ktsc",restTime); + //截止日期 + String jzrqzd = Util.null2String(vocationList.get(0).get("jzrqzdValue")); + VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd); VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye",insertHoliDayParam,dataList,edyxq); return insertHoliDayParam; diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java index 0cae9b7..dfda4d3 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java @@ -153,6 +153,10 @@ public class OneTimePayMentWay implements HolidayGenerationWay{ restTime = ktsc; } insertHoliDayParam.put("ktsc", restTime); + + //截止日期 + String jzrqzd = Util.null2String(vocationList.get(0).get("jzrqzdValue")); + VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd); VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,edyxq); return insertHoliDayParam; diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java index 4ca898a..d715c60 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java @@ -40,6 +40,8 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { List> vocationList = (List>) data.get("vocationList"); //起算日期 String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue")); + //截止日期 + String jzrqzd = Util.null2String(vocationList.get(0).get("jzrqzdValue")); //额度有效期间 String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz")); //额度有效期间单位 @@ -203,8 +205,8 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { } insertHoliDayParam.put("ktsc", restTime); - if (!"1".equals(isOneTime)){ + VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd); VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,edyxq); } return insertHoliDayParam; diff --git a/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java b/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java index c3e9759..c1c001e 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java +++ b/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java @@ -632,4 +632,23 @@ public class VocationCommonUtil { } return totalbig.doubleValue(); } + + /** + * 根据截止日期计算可休时长 + * 如果截止日期字段有值,且截止日在额度的生效与失效日期之间时 + * 用生效日期至截止日期的天数 除以生效日期与失效日期的天数 再乘以额度天数 + * @param insertHoliDayParam + * @param jzrqzd + */ + public static void computeRestTimeByjzrqzd(Map insertHoliDayParam,String jzrqzd){ + String sxrq = Util.null2String(insertHoliDayParam.get("sxrq")); + String jzrq = Util.null2String(insertHoliDayParam.get("jzrq")); + double ktsc = Double.valueOf(Util.null2String(insertHoliDayParam.get("ktsc"))); + if (!"".equals(jzrqzd) && DateUtil.getTime(jzrqzd).compareTo(DateUtil.getTime(sxrq)) >=0 && + DateUtil.getTime(jzrqzd).compareTo(DateUtil.getTime(jzrq)) <=0){ + int alldays = DateUtil.getBetWeenDays(sxrq,jzrq); + int days = DateUtil.getBetWeenDays(sxrq,jzrqzd); + insertHoliDayParam.put("ktsc",Utils.divide(days*ktsc,alldays)); + } + } }