diff --git a/.idea/compiler.xml b/.idea/compiler.xml index a1757ae..6439288 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -4,5 +4,8 @@ + + + \ No newline at end of file diff --git a/.idea/hrm-attendance.iml b/.idea/hrm-attendance.iml new file mode 100644 index 0000000..1a66ddc --- /dev/null +++ b/.idea/hrm-attendance.iml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 2ac941b..e3ccf7a 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..d067de1 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1692339514997 + + + + + + + + + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/test/TestGetClockInPoint.java + 301 + + + file://$PROJECT_DIR$/test/TestMergeAskForLeaveAndEvctionSchedule.java + 90 + + + file://$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java + 294 + + + file://$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java + 279 + + + + + + + + + + + + + \ No newline at end of file diff --git a/log/sdk.log b/log/sdk.log index 6b4ef02..2c2aa40 100644 --- a/log/sdk.log +++ b/log/sdk.log @@ -1214,3 +1214,348 @@ 2023-12-15 17:09:25,338 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - clcokInTimeData :[[{2023-11-12 12:00|1|4={signtime=11:20:00, id=48, userid=53, signdate=2023-11-12}}, {2023-11-12 13:00|0|5={signtime=13:20:00, id=48, userid=53, signdate=2023-11-12}}]] 2023-12-15 17:14:25,334 [Timer-0] [A2] [INFO] - rootPath == null 2023-12-15 17:14:25,336 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties +2024-01-04 16:01:06,194 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 16:01:34,298 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 17:30:19,889 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 17:30:19,951 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年 +2024-01-04 17:30:32,063 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 17:30:32,116 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年 +2024-01-04 17:31:25,205 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 17:31:25,274 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年 +2024-01-04 17:31:46,654 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 17:32:06,681 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年 +2024-01-04 18:49:15,691 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 18:49:15,748 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年 +2024-01-04 18:49:33,069 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 18:49:45,095 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年 +2024-01-04 18:56:34,359 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 19:32:37,994 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:32:38,065 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 19:41:37,462 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:43:07,328 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 19:44:44,053 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:44:44,123 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 19:47:01,492 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:47:41,733 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:48:20,036 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:48:20,097 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 19:49:14,901 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11] +2024-01-04 19:51:28,347 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 19:51:28,352 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00] +2024-01-04 19:51:28,360 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2025-12-31}] +2024-01-04 19:52:37,555 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 19:52:37,559 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00] +2024-01-04 19:52:37,571 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2025-12-31}] +2024-01-04 19:53:40,656 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 19:53:47,389 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00] +2024-01-04 19:54:33,649 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2025-12-31}] +2024-01-04 19:55:00,867 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 19:55:00,871 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00] +2024-01-04 19:55:00,880 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2025-12-31}] +2024-01-04 20:00:39,417 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 20:00:39,421 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00] +2024-01-04 20:00:39,431 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2025-12-31}] +2024-01-04 20:02:56,827 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:02:56,831 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00] +2024-01-04 20:02:56,839 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-06-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2025-12-31}] +2024-01-04 20:05:32,907 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:05:32,911 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00] +2024-01-04 20:05:55,017 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:05:55,022 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00] +2024-01-04 20:06:28,986 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:06:28,990 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00] +2024-01-04 20:07:47,596 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:07:47,600 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00] +2024-01-04 20:07:47,618 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2032-01-01, jqid=112, qsrq=2021-06-01, ffsj=2031-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2032-12-31}] +2024-01-04 20:08:08,092 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:08:08,096 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00] +2024-01-04 20:08:18,983 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2032-01-01, jqid=112, qsrq=2021-06-01, ffsj=2031-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2032-12-31}] +2024-01-04 20:09:11,615 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:09:11,619 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2026-12-16 00:00] +2024-01-04 20:09:11,628 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2027-01-01, jqid=112, qsrq=2021-06-01, ffsj=2026-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2027-12-31}] +2024-01-04 20:10:30,648 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:10:30,655 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:10:30,691 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}] +2024-01-04 20:11:30,908 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:11:30,912 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:11:47,933 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}] +2024-01-04 20:12:13,079 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:12:13,083 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:12:13,093 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}] +2024-01-04 20:12:24,597 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:12:24,600 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:14:31,160 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}] +2024-01-04 20:14:56,389 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:14:56,393 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:14:56,406 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}] +2024-01-04 20:15:28,452 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:15:28,457 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:18:17,238 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}] +2024-01-04 20:19:19,907 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:19:19,912 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:20:14,913 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}] +2024-01-04 20:30:32,397 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:30:32,402 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:31:22,099 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}] +2024-01-04 20:31:30,633 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:31:30,639 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:31:30,657 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}] +2024-01-04 20:45:46,881 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:45:46,885 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:45:46,903 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=12.0, jzrq=2028-12-31}] +2024-01-04 20:46:05,873 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:46:05,878 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:48:11,480 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=12.0, jzrq=2028-12-31}] +2024-01-04 20:49:55,670 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 20:49:55,673 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00] +2024-01-04 20:49:55,682 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=1.0, jzrq=2028-12-31}] +2024-01-04 21:20:04,487 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-04 21:20:04,491 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00] +2024-01-04 21:20:52,694 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:20:52,698 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00] +2024-01-04 21:21:12,708 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:21:12,714 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00] +2024-01-04 21:21:12,720 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-12-01, ffsj=2021-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-02-31}] +2024-01-04 21:21:41,976 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:21:41,980 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00] +2024-01-04 21:21:58,202 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:21:58,206 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00] +2024-01-04 21:22:10,824 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:22:56,917 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00] +2024-01-04 21:25:22,291 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:25:22,295 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:25:47,889 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:25:47,893 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-01-16 00:00] +2024-01-04 21:25:55,261 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:25:55,266 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:26:02,439 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:26:02,445 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-03-16 00:00] +2024-01-04 21:26:27,113 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:26:27,118 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-01-16 00:00] +2024-01-04 21:27:36,529 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:27:36,533 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:27:49,091 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:27:49,096 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-11 00:00] +2024-01-04 21:27:49,099 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-26, jqid=112, qsrq=2021-12-01, ffsj=2022-02-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-26}] +2024-01-04 21:28:03,539 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:28:03,543 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-11 00:00] +2024-01-04 21:28:03,545 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-26, jqid=112, qsrq=2021-12-01, ffsj=2022-02-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-03-26}] +2024-01-04 21:28:15,423 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:28:15,427 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00] +2024-01-04 21:28:31,372 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:28:31,378 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00] +2024-01-04 21:28:44,996 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:28:44,999 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-12-11 00:00] +2024-01-04 21:28:45,001 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-12-26, jqid=112, qsrq=2021-12-01, ffsj=2022-12-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-01-26}] +2024-01-04 21:29:13,170 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:29:36,125 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-12-11 00:00] +2024-01-04 21:29:36,127 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-12-26, jqid=112, qsrq=2021-12-01, ffsj=2022-12-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-01-26}] +2024-01-04 21:29:44,020 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:29:44,028 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:29:57,101 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:29:57,105 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:30:20,902 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:30:20,907 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:30:28,038 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:30:56,063 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:31:03,621 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:31:03,624 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00] +2024-01-04 21:31:45,483 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:31:45,490 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00] +2024-01-04 21:31:45,492 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-12-01, ffsj=2021-12-17 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-02-01}] +2024-01-04 21:32:07,160 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:32:07,166 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-15 00:00] +2024-01-04 21:32:07,168 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-02, jqid=112, qsrq=2021-12-01, ffsj=2022-02-15 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-02}] +2024-01-04 21:32:20,353 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:32:20,361 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-14 00:00] +2024-01-04 21:32:20,365 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-01, jqid=112, qsrq=2021-12-01, ffsj=2022-02-14 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}] +2024-01-04 21:32:37,281 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:32:37,285 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-13 00:00] +2024-01-04 21:32:37,288 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-28, jqid=112, qsrq=2021-12-01, ffsj=2022-02-13 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-03-28}] +2024-01-04 21:32:43,219 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:36:34,419 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-13 00:00] +2024-01-04 21:36:34,422 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-28, jqid=112, qsrq=2021-12-01, ffsj=2022-02-13 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-03-28}] +2024-01-04 21:36:43,080 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:36:49,942 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-15 00:00] +2024-01-04 21:36:49,945 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-02, jqid=112, qsrq=2021-12-01, ffsj=2022-02-15 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-02}] +2024-01-04 21:36:57,575 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:37:05,125 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-14 00:00] +2024-01-04 21:37:05,128 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-01, jqid=112, qsrq=2021-12-01, ffsj=2022-02-14 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}] +2024-01-04 21:39:28,496 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:39:35,177 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:40:19,759 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:40:19,763 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:40:38,258 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:40:38,263 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:40:48,592 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:40:48,596 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:40:54,757 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:41:04,210 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:41:13,516 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:41:48,951 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:42:12,425 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:42:22,554 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-14 00:00] +2024-01-04 21:42:22,557 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-01, jqid=112, qsrq=2021-12-01, ffsj=2022-02-14 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}] +2024-01-04 21:42:40,090 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:42:40,095 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:43:27,865 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:43:27,870 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:43:40,730 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:43:40,735 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:43:51,605 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:43:51,611 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:44:00,735 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:44:00,740 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-01-17 00:00] +2024-01-04 21:44:00,742 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-01, jqid=112, qsrq=2021-12-01, ffsj=2022-01-17 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}] +2024-01-04 21:44:22,908 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:44:22,916 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:44:32,848 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:45:31,188 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:45:51,041 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:45:51,047 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:45:56,469 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:48:12,549 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:49:16,996 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:49:17,000 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-11 00:00] +2024-01-04 21:49:41,511 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:49:41,515 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-11 00:00] +2024-01-04 21:51:21,637 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:51:33,350 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 21:51:52,700 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:51:52,709 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-10 00:00] +2024-01-04 21:52:03,478 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:53:20,827 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-10 00:00] +2024-01-04 21:53:30,015 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 21:53:30,021 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [] +2024-01-04 22:13:42,454 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 22:13:59,683 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 22:14:33,604 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 22:14:33,607 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00] +2024-01-04 22:14:58,647 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 22:14:58,650 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00] +2024-01-04 22:15:48,485 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 22:15:48,488 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00] +2024-01-04 22:16:45,015 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-04 22:16:45,018 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00] +2024-01-05 09:37:36,977 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:37:36,980 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00] +2024-01-05 09:38:11,185 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:38:11,185 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00] +2024-01-05 09:45:41,537 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:45:41,540 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00] +2024-01-05 09:45:50,690 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:45:50,693 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00] +2024-01-05 09:46:03,981 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:46:03,984 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00] +2024-01-05 09:47:46,511 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:47:46,514 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00] +2024-01-05 09:47:46,522 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-12-01, ffsj=2022-01-29 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-12-31}] +2024-01-05 09:48:04,089 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:48:04,098 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:48:13,666 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:48:13,668 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:48:13,676 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2024-01-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=0.0, jzrq=2024-12-31}] +2024-01-05 09:48:24,733 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:48:24,736 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:48:39,159 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2024-01-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=0.0, jzrq=2024-12-31}] +2024-01-05 09:51:39,020 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:51:39,024 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:51:39,036 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2024-01-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=1.0, jzrq=2024-12-31}] +2024-01-05 09:55:20,173 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:55:20,176 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:55:41,044 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:55:41,046 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:56:35,478 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:56:35,482 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:56:45,167 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:56:45,170 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 09:57:09,920 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 09:57:09,923 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 10:51:56,457 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 10:51:56,459 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 10:51:56,468 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-12-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=1.0, jzrq=2024-12-01}] +2024-01-05 10:52:31,846 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-05 10:52:31,849 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00] +2024-01-05 10:52:31,858 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-12-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=1.0, jzrq=2024-12-01}] +2024-01-05 10:57:31,880 [Timer-0] [A2] [INFO] - rootPath == null +2024-01-05 10:57:31,881 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties +2024-01-07 21:44:13,262 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01] +2024-01-07 21:44:13,268 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-08-10, jqid=112, qsrq=2021-12-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-08-16}] +2024-01-07 21:49:13,293 [Timer-0] [A2] [INFO] - rootPath == null +2024-01-07 21:49:13,294 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties +2024-01-08 19:17:59,475 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:17:59,487 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-08-10, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-08-16}] +2024-01-08 19:20:20,611 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:20:20,625 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-12-31}] +2024-01-08 19:22:10,656 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:22:10,661 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-12-31}] +2024-01-08 19:22:27,685 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:22:28,912 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-12-31}] +2024-01-08 19:23:33,145 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:23:53,265 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}] +2024-01-08 19:24:44,334 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:24:48,833 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}] +2024-01-08 19:25:06,820 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:26:02,579 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}] +2024-01-08 19:26:38,064 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:26:38,078 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:26:48,916 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:29:07,926 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:29:47,698 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:29:47,712 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:33:01,437 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:39:59,804 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:40:04,858 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:40:04,887 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:40:15,286 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:40:39,806 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:42:10,174 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:42:12,597 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2022-12-10 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:42:18,618 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:42:53,183 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2022-12-10 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}] +2024-01-08 19:43:13,054 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:44:19,568 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}] +2024-01-08 19:44:30,896 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:45:22,057 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}] +2024-01-08 19:45:38,904 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:46:03,844 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}] +2024-01-08 19:47:02,276 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:47:22,613 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}] +2024-01-08 19:48:06,544 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:50:22,369 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 19:52:44,144 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:54:08,727 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 19:54:14,459 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:55:43,993 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 19:56:07,463 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:57:39,872 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 19:57:50,235 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 19:57:50,249 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 20:02:34,254 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:02:52,264 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=5.0, jzrq=2022-12-31}] +2024-01-08 20:02:57,228 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:03:29,746 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=5.0, jzrq=2022-12-31}] +2024-01-08 20:03:48,297 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:03:57,882 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=5.0, jzrq=2022-12-31}] +2024-01-08 20:04:30,344 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:04:37,896 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 20:04:42,540 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:04:55,633 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 20:05:16,955 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:05:22,705 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}] +2024-01-08 20:05:33,387 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:05:58,363 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}] +2024-01-08 20:06:18,910 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:06:32,006 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}] +2024-01-08 20:41:55,105 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:41:55,109 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}] +2024-01-08 20:42:02,178 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:42:02,184 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}] +2024-01-08 20:42:19,537 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:42:19,542 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}] +2024-01-08 20:42:59,760 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:43:24,797 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 20:43:30,603 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:43:41,011 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] +2024-01-08 20:43:54,392 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01] +2024-01-08 20:44:44,333 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}] diff --git a/out/artifacts/hrm_attendance/hrm-attendance.jar b/out/artifacts/hrm_attendance/hrm-attendance.jar index 1fc9d9d..d8cabed 100644 Binary files a/out/artifacts/hrm_attendance/hrm-attendance.jar and b/out/artifacts/hrm_attendance/hrm-attendance.jar differ diff --git a/src/com/api/attendance/vocation/VocationActionApi.java b/src/com/api/attendance/vocation/VocationActionApi.java new file mode 100644 index 0000000..039f30c --- /dev/null +++ b/src/com/api/attendance/vocation/VocationActionApi.java @@ -0,0 +1,14 @@ +package com.api.attendance.vocation; + + + +import com.engine.attendance.vacation.web.VocationAction; +import lombok.extern.slf4j.Slf4j; + +import javax.ws.rs.Path; + +@Path("/attendance/vocation") +@Slf4j +public class VocationActionApi extends VocationAction { + +} diff --git a/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java b/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java index e794a5d..9b08bf5 100644 --- a/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java +++ b/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java @@ -441,19 +441,19 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ insertHoliDayParam.put("ktsc",itemduration); String zdyqsc = Util.null2String(workTimeBeLateItems.get(0).get("zdyqsc")); - if ("0".equals(zdyqsc)){ + if (DelayTypeEnum.ONE_MONTH.getKey().equals(zdyqsc)){ //一个月 insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),1,DateUtil.yyyyMMdd)); - }else if ("1".equals(zdyqsc)){ + }else if (DelayTypeEnum.TWO_MONTH.getKey().equals(zdyqsc)){ //两个月 insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),2,DateUtil.yyyyMMdd)); - }else if ("2".equals(zdyqsc)){ + }else if (DelayTypeEnum.THREE_MONTH.getKey().equals(zdyqsc)){ //三个月 insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),3,DateUtil.yyyyMMdd)); - }else if ("3".equals(zdyqsc)){ + }else if (DelayTypeEnum.HALF_YEAR.getKey().equals(zdyqsc)){ //半年 insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),6,DateUtil.yyyyMMdd)); - }else if ("4".equals(zdyqsc)){ + }else if (DelayTypeEnum.ONE_YEAR.getKey().equals(zdyqsc)){ //一年 insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),12,DateUtil.yyyyMMdd)); } diff --git a/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java b/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java index afa5b7b..d9be005 100644 --- a/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java +++ b/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java @@ -37,7 +37,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand resultMap = Maps.newHashMap(); - String sql = "select dxlx,dataid,dx from uf_syzz where modeid=?"; + String sql = "select dxlx,dataid,dx from uf_jcl_syzz where modeid=?"; List> organizationList = DbTools.getSqlToList(sql,modeId); sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?"; Map departMentMap = DbTools.getSqlToMap(sql,resourceId); diff --git a/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java b/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java index 0033e92..1cfb74e 100644 --- a/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java +++ b/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java @@ -68,7 +68,7 @@ public class PersongroupCommonUtil { String sql = "select ksts,jsts,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 - sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; + sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?"; // List> organizationList = DbTools.getSqlToList(sql,modeId,id); //规律排班所用企业日历数据 sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?"; diff --git a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java index e598846..12a4adf 100644 --- a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java @@ -59,7 +59,7 @@ public class DayRegularScheduling implements RegularScheduling{ String sql = "select ksts,jsts,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 - sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; + sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?"; List> organizationList = DbTools.getSqlToList(sql,modeId,id); //规律排班所用企业日历数据 sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?"; diff --git a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java index d0b78e7..f37b574 100644 --- a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java @@ -61,7 +61,7 @@ public class MonthRegularScheduling implements RegularScheduling{ String sql = "select ksr,jsr,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 - sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; + sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?"; List> organizationList = DbTools.getSqlToList(sql,modeId,id); //规律排班所用企业日历数据 sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?"; diff --git a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java index d69ffa5..781ce80 100644 --- a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java @@ -60,7 +60,7 @@ public class WeekRegularScheduling implements RegularScheduling{ String sql = "select ksxq,jsxq,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 - sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; + sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?"; List> organizationList = DbTools.getSqlToList(sql,modeId,id); //规律排班所用企业日历数据 sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?"; diff --git a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java index 3035b37..70e8823 100644 --- a/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java @@ -61,7 +61,7 @@ public class YearRegularScheduling implements RegularScheduling{ String sql = "select ksrq,jsrq,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 - sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; + sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?"; List> organizationList = DbTools.getSqlToList(sql,modeId,id); //规律排班所用企业日历数据 sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?"; diff --git a/src/com/engine/attendance/enums/AdjustStartingTimeEnum.java b/src/com/engine/attendance/enums/AdjustStartingTimeEnum.java new file mode 100644 index 0000000..ad0985a --- /dev/null +++ b/src/com/engine/attendance/enums/AdjustStartingTimeEnum.java @@ -0,0 +1,32 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +/** + * 调整起算日期 + */ +public enum AdjustStartingTimeEnum implements BaseEnum { + NO_ADJUST("0","不调整"), + NEXT_MONTH("1","调整为下月1日"), + BY_SEGMENT_TIME("2","按分隔日期调整"), + NOW_MONTH("3","调整为本月1日"); + + private String key; + private String value; + + AdjustStartingTimeEnum(String key, String value){ + this.key=key; + this.value=value; + } + + + @Override + public String getKey() { + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/enums/BalanceHandleEnum.java b/src/com/engine/attendance/enums/BalanceHandleEnum.java new file mode 100644 index 0000000..ed77497 --- /dev/null +++ b/src/com/engine/attendance/enums/BalanceHandleEnum.java @@ -0,0 +1,29 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +public enum BalanceHandleEnum implements BaseEnum { + + CANCEL("0","作废"), + DELAY("1","延期"), + SALARY_CALCULATION("2","计薪"); + + private String key; + private String value; + + BalanceHandleEnum(String key, String value){ + this.key=key; + this.value=value; + } + + @Override + public String getKey() { + + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/enums/DelayTypeEnum.java b/src/com/engine/attendance/enums/DelayTypeEnum.java new file mode 100644 index 0000000..8dad432 --- /dev/null +++ b/src/com/engine/attendance/enums/DelayTypeEnum.java @@ -0,0 +1,31 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +public enum DelayTypeEnum implements BaseEnum { + + ONE_MONTH("0","一个月"), + TWO_MONTH("1","两个月"), + THREE_MONTH("2","三个月"), + HALF_YEAR("3","半年"), + ONE_YEAR("4","一年"); + + private String key; + private String value; + + DelayTypeEnum(String key, String value){ + this.key=key; + this.value=value; + } + + @Override + public String getKey() { + + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/enums/QuotaChangeMethodEnum.java b/src/com/engine/attendance/enums/QuotaChangeMethodEnum.java new file mode 100644 index 0000000..1962bad --- /dev/null +++ b/src/com/engine/attendance/enums/QuotaChangeMethodEnum.java @@ -0,0 +1,28 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +public enum QuotaChangeMethodEnum implements BaseEnum { + NO_CONVERT("0","不折算"), + CONVERT("1","折算"), + DIVIDE_QUOTA("2","取分段额度"); + + private String key; + private String value; + + QuotaChangeMethodEnum(String key, String value){ + this.key=key; + this.value=value; + } + + + @Override + public String getKey() { + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/enums/RemainderHandleEnum.java b/src/com/engine/attendance/enums/RemainderHandleEnum.java new file mode 100644 index 0000000..9b5f4ec --- /dev/null +++ b/src/com/engine/attendance/enums/RemainderHandleEnum.java @@ -0,0 +1,31 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +public enum RemainderHandleEnum implements BaseEnum { + ROUND_UP_FOUR("0","四舍五入保留4位小数"), + ROUND_UP_TWO("1","四舍五入保留2位小数"), + DOWN_ZERO_POINT_FIVE("2","向下取0.5的倍数"), + UP_ZERO_POINT_FIVE("3","向上取0.5的倍数"), + ROUND_DOWN("4","向下取整"), + ROUND_UP("5","向上取整"); + + private String key; + private String value; + + RemainderHandleEnum(String key, String value){ + this.key=key; + this.value=value; + } + + + @Override + public String getKey() { + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/enums/StartingUnitEnum.java b/src/com/engine/attendance/enums/StartingUnitEnum.java new file mode 100644 index 0000000..23abcec --- /dev/null +++ b/src/com/engine/attendance/enums/StartingUnitEnum.java @@ -0,0 +1,35 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +/** + * 起算单位 + */ +public enum StartingUnitEnum implements BaseEnum { + NATURAL_YEAR("0","自然年"), + STARTING_YEAR("1","起算年"), + NATURAL_MONTH("2","自然月"), + STARTING_MONTH("3","起算月"), + NATURAL_WEEK("4","自然周"), + STARTING_WEEK("5","起算周"), + NATURAL_DAY("6","自然天"); + + private String key; + private String value; + + StartingUnitEnum(String key, String value){ + this.key=key; + this.value=value; + } + + + @Override + public String getKey() { + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/vacation/cmd/VocationCmd.java b/src/com/engine/attendance/vacation/cmd/VocationCmd.java new file mode 100644 index 0000000..6e92f7a --- /dev/null +++ b/src/com/engine/attendance/vacation/cmd/VocationCmd.java @@ -0,0 +1,50 @@ +package com.engine.attendance.vacation.cmd; + +import com.engine.attendance.component.persongroup.job.scheduling.tactics.RegularScheduling; +import com.engine.attendance.vacation.job.holidaygeneration.tactics.HolidayGenerationWay; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.Utils; +import com.engine.core.interceptor.CommandContext; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; + +import java.util.List; +import java.util.Map; + +@Slf4j +public class VocationCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + public VocationCmd(Map params){ + this.params=params; + } + + private List rulers; + { + rulers = new Utils().getAllClassByInterface(HolidayGenerationWay.class); + + } + @Override + public Map execute(CommandContext commandContext) { + List> vocationList = (List>)params.get("vocationList"); + Map userMap = (Map)params.get("userMap"); + for (Map vocation : vocationList){ + String qsrq = Util.null2String(userMap.get(vocation.get("qsrq"))); + String yjzd = Util.null2String(userMap.get(vocation.get("yjzd"))); + vocation.put("qsrq",qsrq); + vocation.put("yjzd",yjzd); + } + log.info("VocationCmd params: [{}]",params); + String edfffs = Util.null2String(vocationList.get(0).get("edfffs")); + for (HolidayGenerationWay holidayGenerationWay :rulers){ + if (holidayGenerationWay.support(Integer.valueOf(edfffs))){ + holidayGenerationWay.compute(params); + } + } + + return null; + } +} diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java b/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java index 31a09be..c896c75 100644 --- a/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java @@ -1,12 +1,20 @@ package com.engine.attendance.vacation.job.holidaygeneration; +import com.engine.attendance.attendanceplan.service.AttendancePlanService; +import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl; +import com.engine.attendance.vacation.service.VocationService; +import com.engine.attendance.vacation.service.impl.VocationServiceImpl; +import com.engine.common.util.ServiceUtil; import com.engine.common.util.Utils; +import com.google.common.collect.Maps; import weaver.interfaces.schedule.BaseCronJob; import java.util.Map; public class HolidayGenerationJob extends BaseCronJob { + private VocationService basicsetService = ServiceUtil.getService(VocationServiceImpl.class); + /** * 是否覆盖,1:覆盖,0:不覆盖 */ @@ -21,6 +29,10 @@ public class HolidayGenerationJob extends BaseCronJob { Map formmodeIdMap = Utils.getFormmodeIdMap(); //假期额度模块id String modeId = formmodeIdMap.get("uf_jcl_kq_jqed"); + Map params = Maps.newHashMap(); + params.put("modeId",modeId); + params.put("releaseDate",releaseDate); + basicsetService.generateVocation(params); } } diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java new file mode 100644 index 0000000..b3d35b5 --- /dev/null +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java @@ -0,0 +1,21 @@ +package com.engine.attendance.vacation.job.holidaygeneration.tactics; + +import java.util.Map; + +/** + * 循环按间隔时长折算发放 + */ +public class ByIntervalPayMentWay implements HolidayGenerationWay{ + @Override + public boolean support(int personClassfiy) { + if (personClassfiy == 2){ + return true; + } + return false; + } + + @Override + public void compute(Map data) { + + } +} diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java new file mode 100644 index 0000000..1bc4adb --- /dev/null +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java @@ -0,0 +1,262 @@ +package com.engine.attendance.vacation.job.holidaygeneration.tactics; + + +import com.engine.attendance.enums.CheckBoxEnum; +import com.engine.attendance.enums.QuotaChangeMethodEnum; +import com.engine.attendance.enums.StartingUnitEnum; +import com.engine.attendance.vacation.util.VocationCommonUtil; +import com.engine.common.util.DateUtil; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; + +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +/** + * 循环按期别分批发放 + */ +@Slf4j +public class BySchedulePaymentWay implements HolidayGenerationWay{ + @Override + public boolean support(int personClassfiy) { + if (personClassfiy == 1){ + return true; + } + return false; + } + + @Override + public void compute(Map data) { + String userId = Util.null2String(data.get("userId")); + String releaseDate = Util.null2String(data.get("releaseDate")); + String cover = Util.null2String(data.get("cover")); + if ("".equals(releaseDate)){ + releaseDate = DateUtil.getCurrentTime(); + } + List> vocationList = (List>)data.get("vocationList"); + //起算日期 + String qsrq = Util.null2String(vocationList.get(0).get("qsrq")); + //额度有效期间 + String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz")); + //额度有效期间单位 + String edyxq = Util.null2String(vocationList.get(0).get("edyxq")); + //累计承认工龄月份数栏位值 + String ljcrglyfslwz= Util.null2String(vocationList.get(0).get("ljcrglyfslwz")); + //依据字段 + String yjzd= Util.null2String(vocationList.get(0).get("yjzd")); + //调整起算日期策略 + String dzqsrq= Util.null2String(vocationList.get(0).get("dzqsrq")); + //分割日期 + String fgrq= Util.null2String(vocationList.get(0).get("fgrq")); + //提前执行发放操作的天数 + Integer dqtqffts = Integer.valueOf(Util.null2String(vocationList.get(0).get("dqtqffts"))); + //执行发放的时间点 + String ffdtffsj = Util.null2String(vocationList.get(0).get("ffdtffsj")); + //入职当期额度按比例折算 + String rzdqedablzs = Util.null2String(vocationList.get(0).get("rzdqedablzs")); + //首次获得额度按比例折算 + String schdedablzs = Util.null2String(vocationList.get(0).get("schdedablzs")); + //额度变更时额度处理方式 + String edbgsedclfs = Util.null2String(vocationList.get(0).get("edbgsedclfs")); + //额度单位 + String eddw = Util.null2String(vocationList.get(0).get("edbgsedclfs")); + //尾数处理 + String wscl = Util.null2String(vocationList.get(0).get("wscl")); + //首次获得额度控制生效日期 + String schdedkzsxrq = Util.null2String(vocationList.get(0).get("schdedkzsxrq")); + + qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq,dzqsrq,fgrq); + for (Map vocationMap : vocationList) { + vocationMap.put("qsrq", qsrq); + } + + //相差天数 + int betweenDays = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]); + //相差月份 + int betweenMonth = DateUtil.getBetWeenMonths(qsrq, releaseDate.split(" ")[0]); + //总工龄天数 + int allWorkDays = Double.valueOf(ljcrglyfslwz).intValue() * 30 + betweenDays; + //总月数 + int allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue(); + + + + //执行日期 + Map insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate); + + List> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam); + + + //已存在数据且不覆盖 + if (dataList.size()>0 && !"1".equals(cover)) { + return; + } + String sxrq = insertHoliDayParam.get("sxrq").toString(); + //实际休息时长 + double restTime = 0; + //工龄小于1年的新员工,且额度有效期单位为自然年 + if (allMonths < 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) { + + if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs) || CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) { + + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + } else { + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate); + } + + insertHoliDayParam.put("sxrq", DateUtil.nextYear(releaseDate.split(" ")[0], 1, DateUtil.yyyyMMdd)); + + insertHoliDayParam.put("ktsc", restTime); + } else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) { + //入职不满一年,且入职当期额度按比例折算 + if (CheckBoxEnum.CHECKED.getKey().equals(rzdqedablzs) && betweenMonth < 12 + && sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { + //起算年和发生日期在同一年,生成假期为起算年的当年 + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + } else { + if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs)) { + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate); + } else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) { + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate); + } + } + }else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){ + int betweenYear = DateUtil.getBetWeenYears(qsrq,releaseDate.split(" ")[0]); + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList,betweenYear,yjzd); + int occurMonths = DateUtil.getTime(releaseDate).getMonthValue(); + int StartMonths = DateUtil.getTime(qsrq).getMonthValue(); + + int months = occurMonths-StartMonths; + if (months < 0){ + months = 12-StartMonths+occurMonths; + } + String stage = String.valueOf(months); + if (months < 10){ + stage = "0"+stage; + } + if (vocationMap.size() >0){ + restTime = Double.valueOf(vocationMap.get("fdsc"+stage).toString()); + }else { + restTime=0; + } + } + insertHoliDayParam.put("ktsc",restTime); + VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye",insertHoliDayParam,dataList); + } + + public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate){ + String sxrq = insertHoliDayParam.get("sxrq").toString(); + String qsrq = Util.null2String(vocationList.get(0).get("qsrq")); + String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd); + //累计承认工龄月份数栏位值 + String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz")); + //依据字段 + String yjzd = Util.null2String(vocationList.get(0).get("yjzd")); + //尾数处理 + String wscl = Util.null2String(vocationList.get(0).get("wscl")); + //提前执行发放操作的天数 + int dqtqffts = Integer.valueOf(Util.null2String(vocationList.get(0).get("dqtqffts"))); + //执行发放的时间点 + String ffdtffsj = Util.null2String(vocationList.get(0).get("ffdtffsj")); + + int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue(); + + String nowEndYearTime = releaseDate.split("-")[0]+"-12-31"; + String forWardTime = DateUtil.beforeDay(nowEndYearTime,dqtqffts) +" "+ffdtffsj; + + if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(forWardTime)) >=0){ + String nextYear = DateUtil.nextYear(releaseDate,1,DateUtil.yyyy); + releaseDate = nextYear +"-01-01"; + } + int qsrqMonths = DateUtil.getDays(qsrq,Calendar.MONTH); + int releaseDateMonths = DateUtil.getDays(releaseDate,Calendar.MONTH); + double restTime=0.0; + //折算 + if (changeMethodEnum == QuotaChangeMethodEnum.CONVERT){ + int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (beginYearMonth < 0){ + beginYearMonth = 0; + } + beginYearMonth = beginYearMonth+seniority; + int endYearMonth = DateUtil.getBetWeenMonths(qsrq,nextSxrq); + endYearMonth = endYearMonth+seniority; + int beginYear = beginYearMonth/12; + int endYear = endYearMonth/12; + int endYearRemainder = endYearMonth%12; + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd); + double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); + double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc"))); + + //残年分割日期 + String divideTime = DateUtil.beforeMonth(nextSxrq,endYearRemainder); + divideTime = DateUtil.nextMonth(divideTime,1,DateUtil.yyyyMM)+"-01"; + int divideTimeMonths = DateUtil.getDays(divideTime,Calendar.MONTH); + int yearDays = DateUtil.getDays(sxrq, Calendar.DAY_OF_YEAR); + + if (beginEdktsc == endEdktsc){ + //当前后额定可休时长一样时,代表没有残年情况 + + if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){ + //生成起算日期当年的假期余额,通常用于没有工作经验的新员工 + int months = releaseDateMonths-qsrqMonths+1; + restTime = getRestTime(months,endYearmap); + }else { + restTime = getRestTime(releaseDateMonths,endYearmap); + } + }else { + //考虑残年 + if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){ + //生成起算日期当年的假期余额,通常用于有工作经验的新员工 + if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){ + + if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(divideTime)) <0){ + int months = releaseDateMonths-qsrqMonths+1; + restTime = getRestTime(months,beginYearmap); + }else { + int months = releaseDateMonths-divideTimeMonths+1; + restTime = getRestTime(months,endYearmap); + } + }else { + int months = releaseDateMonths-qsrqMonths; + restTime = getRestTime(months,endYearmap); + } + }else { + if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(divideTime)) <0){ + int months = releaseDateMonths-qsrqMonths+1; + restTime = getRestTime(months,beginYearmap); + }else { + int months = releaseDateMonths-divideTimeMonths+1; + restTime = getRestTime(months,endYearmap); + } + } + } + + }else { + //不折算 + int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (beginYearMonth < 0){ + beginYearMonth = 0; + } + beginYearMonth = beginYearMonth+seniority; + int beginYear = beginYearMonth/12; + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + restTime = getRestTime(releaseDateMonths,beginYearmap); + } + return restTime; + } + + public Double getRestTime(int i,Map endYearmap){ + String str = String.valueOf(i); + if (i < 10){ + str = "0"+str; + } + + String fdsc = Util.null2String(endYearmap.get("fdsc"+str)); + if ("".equals(fdsc)){ + fdsc="0"; + } + return Double.valueOf(fdsc); + } +} diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.java new file mode 100644 index 0000000..976f7a2 --- /dev/null +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.java @@ -0,0 +1,10 @@ +package com.engine.attendance.vacation.job.holidaygeneration.tactics; + +import java.util.Map; + + +public interface HolidayGenerationWay { + boolean support(int personClassfiy); + + void compute(Map requestList); +} diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java new file mode 100644 index 0000000..ac1edc3 --- /dev/null +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java @@ -0,0 +1,22 @@ +package com.engine.attendance.vacation.job.holidaygeneration.tactics; + + +import java.util.Map; + +/** + * 一次发完所有额度 + */ +public class OneTimePayMentWay implements HolidayGenerationWay{ + @Override + public boolean support(int personClassfiy) { + if (personClassfiy == 3){ + return true; + } + return false; + } + + @Override + public void compute(Map data) { + + } +} diff --git a/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java new file mode 100644 index 0000000..1bd6f77 --- /dev/null +++ b/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java @@ -0,0 +1,343 @@ +package com.engine.attendance.vacation.job.holidaygeneration.tactics; + + +import com.engine.attendance.enums.CheckBoxEnum; +import com.engine.attendance.enums.QuotaChangeMethodEnum; +import com.engine.attendance.enums.StartingUnitEnum; +import com.engine.attendance.vacation.util.VocationCommonUtil; +import com.engine.common.util.DateUtil; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +/** + * 循环单次发放全额 + */ +@Slf4j +public class SinglePaymentInFullWay implements HolidayGenerationWay { + @Override + public boolean support(int personClassfiy) { + if (personClassfiy == 0) { + return true; + } + return false; + } + + @Override + public void compute(Map data) { + String userId = Util.null2String(data.get("userId")); + String releaseDate = Util.null2String(data.get("releaseDate")); + String cover = Util.null2String(data.get("cover")); + if ("".equals(releaseDate)) { + releaseDate = DateUtil.getCurrentTime(); + } + List> vocationList = (List>) data.get("vocationList"); + //起算日期 + String qsrq = Util.null2String(vocationList.get(0).get("qsrq")); + //额度有效期间 + String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz")); + //额度有效期间单位 + String edyxq = Util.null2String(vocationList.get(0).get("edyxq")); + //累计承认工龄月份数栏位值 + String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz")); + //依据字段 + String yjzd = Util.null2String(vocationList.get(0).get("yjzd")); + //调整起算日期策略 + String dzqsrq = Util.null2String(vocationList.get(0).get("dzqsrq")); + //分割日期 + String fgrq = Util.null2String(vocationList.get(0).get("fgrq")); + //提前执行发放操作的天数 + String dqtqffts = Util.null2String(vocationList.get(0).get("dqtqffts")); + //执行发放的时间点 + String ffdtffsj = Util.null2String(vocationList.get(0).get("ffdtffsj")); + //入职当期额度按比例折算 + String rzdqedablzs = Util.null2String(vocationList.get(0).get("rzdqedablzs")); + //首次获得额度按比例折算 + String schdedablzs = Util.null2String(vocationList.get(0).get("schdedablzs")); + //额度变更时额度处理方式 + String edbgsedclfs = Util.null2String(vocationList.get(0).get("edbgsedclfs")); + //额度单位 + String eddw = Util.null2String(vocationList.get(0).get("edbgsedclfs")); + //尾数处理 + String wscl = Util.null2String(vocationList.get(0).get("wscl")); + //首次获得额度控制生效日期 + String schdedkzsxrq = Util.null2String(vocationList.get(0).get("schdedkzsxrq")); + + qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq, dzqsrq, fgrq); + for (Map vocationMap : vocationList) { + vocationMap.put("qsrq", qsrq); + } + + //相差天数 + int betweenDays = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]); + //相差月份 + int betweenMonth = DateUtil.getBetWeenMonths(qsrq, releaseDate.split(" ")[0]); + //总工龄天数 + int allWorkDays = Double.valueOf(ljcrglyfslwz).intValue() * 30 + betweenDays; + //总月数 + int allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue(); + if (allMonths < 12 && !CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) { + log.info("userId : [{}] 工龄小于1年", userId); + return; + } + + + Map insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate); + + List> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam); + + //已存在数据且不覆盖 + if (dataList.size()>0 && !"1".equals(cover)) { + return; + } + + String sxrq = insertHoliDayParam.get("sxrq").toString(); + //实际休息时长 + double restTime = 0; + //工龄小于1年的新员工,且额度有效期单位为自然年 + if (allMonths < 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) { +// Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, 0, yjzd); +// +// //额定休息时长 +// double edktsc = Double.valueOf(vocationMap.get("edktsc") == null? "0" :Util.null2String(vocationMap.get("edktsc"))); + if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs) || CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) { +// if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年和发生日期在同一年,生成假期在下一年 +// int days = DateUtil.getBetWeenDays(qsrq, qsrq.split("-")[0] + "-12-31") + 1; +// int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR); +// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl); +// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年和发生日期在同一年,生成假期为起算年的当年 +// int days = Double.valueOf(ljcrglyfslwz).intValue() * 30; +// int yearDays = DateUtil.getDays(DateUtil.beforeYear(releaseDate,1,DateUtil.yyyyMMdd), Calendar.DAY_OF_YEAR); +// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl); +// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年在发生日期的上一年,起算年的后一年 +// int days = DateUtil.getBetWeenDays(qsrq, qsrq.split("-")[0] + "-12-31") + 1; +// int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR); +// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl); +// } else if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年在发生日期的上一年,生成假期为起算年的后第二年 +// restTime = edktsc; +// } + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT); + + } else { +// restTime = edktsc; + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT); + } + + + if (CheckBoxEnum.CHECKED.getKey().equals(schdedkzsxrq)) { + insertHoliDayParam.put("sxrq", DateUtil.nextYear(releaseDate.split(" ")[0], 1, DateUtil.yyyyMMdd)); + } + insertHoliDayParam.put("ktsc", restTime); + } else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) { + //入职不满一年,且入职当期额度按比例折算 + if (CheckBoxEnum.CHECKED.getKey().equals(rzdqedablzs) && betweenMonth < 12 + && sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { + //起算年和发生日期在同一年,生成假期为起算年的当年 +// Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, Double.valueOf(ljcrglyfslwz).intValue() / 12, yjzd); +// double edktsc = Double.valueOf(vocationMap.get("edktsc").toString()); +// int days = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]) + 1; +// int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR); +// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl); + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT); + } else { +// +// if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年和发生日期在同一年,生成假期在下一年 +// //betweenMonth = DateUtil.getBetWeenMonths(qsrq,qsrq.split("-")[0] + "-12-31"); +// betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); +// +// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年和发生日期在同一年,生成假期为发生日期的当年 +// betweenMonth=0; +// +// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年在发生日期的之前,生成假期为发生日期的当年 +// //betweenMonth = DateUtil.getBetWeenMonths(qsrq,DateUtil.beforeYear(releaseDate,1,DateUtil.yyyy) + "-12-31"); +// betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); +// +// } else if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) { +// //起算年在发生日期的之前,生成假期为发生日期的下一年 +// //betweenMonth = DateUtil.getBetWeenMonths(qsrq,releaseDate.split("-")[0] + "-12-31"); +// betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); +// +// } +// allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue(); +// int intervalYear = allMonths/12; +// Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear / 12, yjzd); +// double edktsc = Double.valueOf(vocationMap.get("edktsc").toString()); + + if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs)) { +// Map beforeVocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear - 1, yjzd); +// if (!beforeVocationMap.get("detailid").equals(vocationMap.get("detailid"))) { +// //考虑残年情况 +// double beforeEdktsc = Double.valueOf(beforeVocationMap.get("edktsc").toString()); +// int needBackMonths = (intervalYear - 1) * 12 - Double.valueOf(ljcrglyfslwz).intValue(); +// +// String middleTime = releaseDate.split("-")[0] + "-" + DateUtil.nextMonth(qsrq, needBackMonths, DateUtil.yyyyMMdd).split("-")[1] + "-" + qsrq.split("-")[2]; +// int beforeDays = DateUtil.getBetWeenDays(releaseDate.split("-")[0] + "-01-01", middleTime); +// int afterDays = DateUtil.getBetWeenDays(middleTime, releaseDate.split("-")[0] + "-12-31"); +// +// int yearDays = DateUtil.getDays(releaseDate, Calendar.DAY_OF_YEAR); +// restTime = VocationCommonUtil.computeRestDays(beforeDays, yearDays, beforeEdktsc, wscl) + VocationCommonUtil.computeRestDays(afterDays, yearDays, edktsc, wscl); +// } else { +// restTime = edktsc; +// } + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT); + } else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) { +// restTime = edktsc; + restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT); + } + } + } else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())) { + int betweenYear = DateUtil.getBetWeenYears(qsrq,releaseDate.split(" ")[0]); + //起算年 + allMonths = Double.valueOf(ljcrglyfslwz).intValue(); + int intervalYear = allMonths / 12+betweenYear; + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear, yjzd); + restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; + } else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){ + //自然月 + betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (DateUtil.getTime(sxrq).compareTo(DateUtil.getTime(qsrq)) <=0){ + betweenMonth = 0; + } + allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue(); + + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd); + restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; + + } else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){ + //起算月 + betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue(); + + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd); + restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; + } else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){ + //起自然周 + betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1; + if (DateUtil.getTime(sxrq).compareTo(DateUtil.getTime(qsrq)) <=0){ + betweenDays = 0; + } + allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd); + restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; + + } else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){ + //起算周 + betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1; + if (betweenDays <=7){ + betweenDays=0; + } + allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd); + restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; + + } else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ + //自然天 + betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1; + allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays; + Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd); + restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; + } + insertHoliDayParam.put("ktsc", restTime); + + VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList); + } + + + public double getRestTime(Map insertHoliDayParam,List> vocationList,QuotaChangeMethodEnum changeMethodEnum){ + String sxrq = insertHoliDayParam.get("sxrq").toString(); + String qsrq = Util.null2String(vocationList.get(0).get("qsrq")); + String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd); + //累计承认工龄月份数栏位值 + String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz")); + //依据字段 + String yjzd = Util.null2String(vocationList.get(0).get("yjzd")); + //尾数处理 + String wscl = Util.null2String(vocationList.get(0).get("wscl")); + + int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue(); + + double restTime=0.0; + //折算 + if (changeMethodEnum == QuotaChangeMethodEnum.CONVERT){ + int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (beginYearMonth < 0){ + beginYearMonth = 0; + } + beginYearMonth = beginYearMonth+seniority; + int endYearMonth = DateUtil.getBetWeenMonths(qsrq,nextSxrq); + endYearMonth = endYearMonth+seniority; + int beginYear = beginYearMonth/12; + int endYear = endYearMonth/12; + int endYearRemainder = endYearMonth%12; + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd); + double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); + double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc"))); + + //残年分割日期 + String divideTime = DateUtil.beforeMonth(nextSxrq,endYearRemainder); + divideTime = divideTime.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+qsrq.split("-")[2]; + int yearDays = DateUtil.getDays(sxrq, Calendar.DAY_OF_YEAR); + + if (beginEdktsc == endEdktsc){ + //当前后额定可休时长一样时,代表没有残年情况 + if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){ + int days = DateUtil.getBetWeenDays(qsrq,nextSxrq); + restTime = VocationCommonUtil.computeRestDays(days, yearDays, endEdktsc, wscl); + }else { + restTime = beginEdktsc; + } + }else { + //考虑残年 + if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){ + + if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){ + int beforeDays = DateUtil.getBetWeenDays(qsrq,divideTime); + int afterDays = DateUtil.getBetWeenDays(divideTime,nextSxrq); + + double beforeRestTime = VocationCommonUtil.computeRestDays(beforeDays, yearDays, endEdktsc, wscl); + double afterRestTime = VocationCommonUtil.computeRestDays(afterDays, yearDays, endEdktsc, wscl); + restTime = beforeRestTime+afterRestTime; + }else { + int afterDays = DateUtil.getBetWeenDays(qsrq,nextSxrq); + restTime = VocationCommonUtil.computeRestDays(afterDays, yearDays, endEdktsc, wscl); + } + + }else { + int beforeDays = DateUtil.getBetWeenDays(sxrq,divideTime); + int afterDays = DateUtil.getBetWeenDays(divideTime,nextSxrq); + double beforeRestTime = VocationCommonUtil.computeRestDays(beforeDays, yearDays, endEdktsc, wscl); + double afterRestTime = VocationCommonUtil.computeRestDays(afterDays, yearDays, endEdktsc, wscl); + restTime = beforeRestTime+afterRestTime; + } + } + + }else { + //不折算 + int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (beginYearMonth < 0){ + beginYearMonth = 0; + } + beginYearMonth = beginYearMonth+seniority; + int beginYear = beginYearMonth/12; + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd); + double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); + restTime=beginEdktsc; + } + return restTime; + } + +} diff --git a/src/com/engine/attendance/vacation/service/VocationService.java b/src/com/engine/attendance/vacation/service/VocationService.java new file mode 100644 index 0000000..669e3c7 --- /dev/null +++ b/src/com/engine/attendance/vacation/service/VocationService.java @@ -0,0 +1,11 @@ +package com.engine.attendance.vacation.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface VocationService { + Map generateVocation(Map params); + + +} diff --git a/src/com/engine/attendance/vacation/service/impl/VocationServiceImpl.java b/src/com/engine/attendance/vacation/service/impl/VocationServiceImpl.java new file mode 100644 index 0000000..16ec048 --- /dev/null +++ b/src/com/engine/attendance/vacation/service/impl/VocationServiceImpl.java @@ -0,0 +1,94 @@ +package com.engine.attendance.vacation.service.impl; + +import com.engine.attendance.attendanceplan.service.AttendancePlanService; +import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl; +import com.engine.attendance.vacation.cmd.VocationCmd; +import com.engine.attendance.vacation.service.VocationService; +import com.engine.common.cmd.GetPersonDateBySuitOrganzation; +import com.engine.common.util.DbTools; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class VocationServiceImpl extends Service implements VocationService { + + private AttendancePlanService basicsetService = ServiceUtil.getService(AttendancePlanServiceImpl.class); + + + @Override + public Map generateVocation(Map params) { + String modeId = Util.null2String(params.get("modeId")); + Map param = Maps.newHashMap(); + param.put("modeId",modeId); + Map result = commandExecutor.execute(new GetPersonDateBySuitOrganzation(param)); + + String sql = "select a.id userid,a.*,b.* from hrmresource a left join cus_fielddata b on a.id=b.id where a.id in ("; + + List userIds = Lists.newArrayList(); + for (Map.Entry entry : result.entrySet()){ + userIds.add(entry.getKey()); + } + List> userPartions = Lists.partition(userIds,50); + List> dataList = Lists.newArrayList(); + for (List list : userPartions){ + String querySql = sql + String.join(",",list) +")"; + log.info("querySql : [{}]",querySql); + List> resultList = DbTools.getSqlToList(querySql); + + List> filterList = resultList.stream().filter(e -> "HrmCustomFieldByInfoType".equals(Util.null2String(e.get("scope"))) && + "-1".equals(Util.null2String(e.get("scopeid")))).collect(Collectors.toList()); + dataList.addAll(filterList); + + List filterStrList = filterList.stream().map(e -> e.get("userid").toString()).collect(Collectors.toList()); + resultList = resultList.stream().filter(e -> { + String userId = Util.null2String(e.get("userid")); + if (filterStrList.contains(userId)){ + return false; + }else { + return true; + } + + }).collect(Collectors.toList()); + dataList.addAll(resultList); + } + Map>> userIdMap = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid")))); + + for (Map.Entry entry : result.entrySet()){ + String userId = entry.getKey(); + Map vocationMap = (Map)entry.getValue(); + Map paramMap = Maps.newHashMap(); + paramMap.put("startDate",""); + paramMap.put("endDate",""); + paramMap.put("resourceId",userId); + Map dataMap = basicsetService.getAttendanceItemsByPerson(paramMap); + List> attendanceItems = (List>)dataMap.get("data"); + Map needGenerateVocationMap = Maps.newHashMap(); + for (Map map : attendanceItems){ + if (vocationMap.get(map.get("key")) != null){ + needGenerateVocationMap.put(Util.null2String(map.get("key")),vocationMap.get(map.get("key"))); + } + } + log.info("VocationServiceImpl userId:{}, userMap:{}",userId,userIdMap.get(userId)); + for (Map.Entry e:needGenerateVocationMap.entrySet()){ + if (e.getValue() != null && ((List>)e.getValue()).size() > 0){ + Map vocationParam = Maps.newHashMap(); + vocationParam.put("userId",userId); + vocationParam.put("vocationList",e.getValue()); + vocationParam.put("userMap",userIdMap.get(userId).get(0)); + vocationParam.put("releaseDate",params.get("releaseDate")); + commandExecutor.execute(new VocationCmd(vocationParam)); + } + } + } + return null; + } + +} diff --git a/src/com/engine/attendance/vacation/service/vocationService.java b/src/com/engine/attendance/vacation/service/vocationService.java deleted file mode 100644 index a0452f7..0000000 --- a/src/com/engine/attendance/vacation/service/vocationService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.engine.attendance.vacation.service; - -import weaver.hrm.User; - -import java.util.Map; - -public interface vocationService { - Map getHrmCondition(Map params, User user); -} diff --git a/src/com/engine/attendance/vacation/util/VocationCommonUtil.java b/src/com/engine/attendance/vacation/util/VocationCommonUtil.java new file mode 100644 index 0000000..7d0b2b9 --- /dev/null +++ b/src/com/engine/attendance/vacation/util/VocationCommonUtil.java @@ -0,0 +1,425 @@ +package com.engine.attendance.vacation.util; + +import com.engine.attendance.enums.*; +import com.engine.common.util.CommonUtil; +import com.engine.common.util.DateUtil; +import com.engine.common.util.DbTools; +import com.engine.common.util.Utils; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.exolab.castor.xml.schema.IdentityField; +import weaver.general.TimeUtil; +import weaver.general.Util; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class VocationCommonUtil { + + /** + * 获得调整后的起算日期 + * @param qsrq 起算日期 + * @param dzqsrq 调整起算日期策略 + * @param fgrq 分割日期 + * @return + */ + public static String getAfterAdjustTime(String qsrq,String dzqsrq,String fgrq){ + + if (AdjustStartingTimeEnum.NEXT_MONTH.getKey().equals(dzqsrq)){ + String nextMonth = DateUtil.nextMonth(qsrq,1,DateUtil.yyyyMMdd); + qsrq = nextMonth.split("-")[0]+"-"+nextMonth.split("-")[1]+"-01"; + + }else if (AdjustStartingTimeEnum.BY_SEGMENT_TIME.getKey().equals(dzqsrq)){ + if (fgrq.length() == 1){ + fgrq = "0"+fgrq; + } + String divideDate=qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+fgrq; + if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(divideDate)) >=0){ + qsrq=divideDate; + } + + }else if (AdjustStartingTimeEnum.NOW_MONTH.getKey().equals(dzqsrq)){ + + qsrq = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01"; + } + log.info("getAfterAdjustTime qsrq : [{}]",qsrq); + return qsrq; + } + + /** + * 获得执行日期 + * @param releaseDate 执行时间 + * @param vocationMap 假期集合 + * @return + + public static String getExcuteTime(String releaseDate ,Map vocationMap){ + String time = ""; + String edyxq = Util.null2String(vocationMap.get("edyxq")); + String dqtqffts = Util.null2String(vocationMap.get("dqtqffts")); + String ffdtffsj = Util.null2String(vocationMap.get("ffdtffsj")); + String qsrq = Util.null2String(vocationMap.get("qsrq")); + int edyxqsz = Double.valueOf(Util.null2String(vocationMap.get("edyxqsz"))).intValue(); + + if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())){ + int nowYear = Integer.valueOf(releaseDate.split("-")[0])+1; + int StartYear = Integer.valueOf(qsrq.split("-")[0]); + if ((nowYear-StartYear)%edyxqsz == 0){ + String endYearTime = releaseDate.split("-")[0]+"-"+"12-31"; + time = DateUtil.beforeDay(endYearTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + } + }else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){ + int betweenYear = DateUtil.getBetWeenYears(releaseDate.split(" ")[0],qsrq); + if (betweenYear >=1 && betweenYear % edyxqsz == 0){ + if (betweenYear > 1){ + String startTime = releaseDate.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+qsrq.split("-")[2]; + time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + }else { + String startTime = DateUtil.nextYear(qsrq,1,DateUtil.yyyyMMdd); + time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + } + } + }else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){ + String startTime = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01"; + String nowTime = releaseDate.split("-")[0]+"-"+releaseDate.split("-")[1]+"-01"; + int betweenMonths = DateUtil.getBetWeenMonths(startTime,nowTime)+1; + if (betweenMonths % edyxqsz == 0){ + int diffdays = DateUtil.getDays(releaseDate, Calendar.DAY_OF_MONTH); + String endMonthTime = releaseDate.split("-")[0]+"-"+releaseDate.split("-")[1]+"-"+diffdays; + time = DateUtil.beforeDay(endMonthTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + } + + }else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){ + + String afterReleaseDate = DateUtil.AfterDay(releaseDate.split(" ")[0],Integer.valueOf(dqtqffts)); + int betweenMonths = DateUtil.getBetWeenMonths(qsrq,afterReleaseDate); + if (betweenMonths >=1 && betweenMonths%edyxqsz == 0 && qsrq.split("-")[2].equals(afterReleaseDate.split("-")[2])){ + if (betweenMonths > 1){ + String startTime = releaseDate.split(" ")[0]; + time = startTime +" "+ffdtffsj; + }else { + String startTime = DateUtil.nextMonth(qsrq,1,DateUtil.yyyyMMdd); + time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + } + } + + }else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){ + int days = DateUtil.getBetWeenDays(qsrq,releaseDate.split(" ")[0]); + int dayOfWeek = TimeUtil.getDayOfWeek(qsrq); + if (dayOfWeek == 0){ + dayOfWeek = 7; + } + days = days-(7-dayOfWeek); + int betWeenWeeks = days/7 +1; + if (days % 7 == 0 && betWeenWeeks%edyxqsz == 0){ + String startTime = DateUtil.AfterDay(releaseDate.split(" ")[0],7); + time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + } + }else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){ + String afterReleaseDate = DateUtil.AfterDay(releaseDate.split(" ")[0],Integer.valueOf(dqtqffts)); + int days = DateUtil.getBetWeenDays(qsrq,afterReleaseDate); + int betWeenWeeks = days/7; + if (days %7 ==0 && betWeenWeeks%edyxqsz == 0 && betWeenWeeks>=1){ + if (betWeenWeeks > 1){ + String startTime = releaseDate.split(" ")[0]; + time = startTime +" "+ffdtffsj; + }else { + String startTime = DateUtil.AfterDay(qsrq,7); + time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj; + } + } + + }else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ + time = releaseDate.split(" ")[0]+" "+ffdtffsj; + } + log.info("excuteTime : [{}]",time); + return time; + } + */ + + /** + * 根据依据字段和 + * @param vocationList 假期额度集合 + * @param intervalDuration 间隔时长 + * @param yjzd 依据字段 + * @return + */ + public static Map getVocationMap(List> vocationList,int intervalDuration,String yjzd){ + + List> resultList = vocationList.stream().filter(e -> { + //间隔时长起 + double jgsc0 = Double.valueOf(Util.null2String(e.get("jgsc0"))); + //间隔时长止 + double jgsc1 = Double.valueOf(Util.null2String(e.get("jgsc1"))); + //选项值 + String xxz = Util.null2String(e.get("xxz")); + if (!"".equals(yjzd) && xxz.equals(yjzd) && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){ + return true; + }else if ("".equals(yjzd) && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){ + return true; + }else { + return false; + } + + }).collect(Collectors.toList()); + if (resultList.size() > 0){ + return resultList.get(0); + }else { + return new HashMap<>(); + } + } + + /** + * 计算额定休息天数 + * @param day 一年当中占据的天数 + * @param yearDay 一年的天数 + * @param ratedRestTime 额定可休时长 + * @param wscl 尾数处理 + * @return + */ + public static double computeRestDays(int day,int yearDay,double ratedRestTime,String wscl){ + BigDecimal dayBig = new BigDecimal(day); + BigDecimal yearDayBig = new BigDecimal(yearDay); + BigDecimal ratedRestTimeBig = new BigDecimal(ratedRestTime); + double result = 0; + if (RemainderHandleEnum.ROUND_UP_FOUR.getKey().equals(wscl)){ + result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue(); + }else if (RemainderHandleEnum.ROUND_UP_TWO.getKey().equals(wscl)){ + result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); + }else if (RemainderHandleEnum.DOWN_ZERO_POINT_FIVE.getKey().equals(wscl)){ + result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue(); + result = Math.floor(result * 2) / 2; + }else if (RemainderHandleEnum.UP_ZERO_POINT_FIVE.getKey().equals(wscl)){ + result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue(); + result = Math.ceil(result * 2) / 2; + }else if (RemainderHandleEnum.ROUND_DOWN.getKey().equals(wscl)){ + result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(0,BigDecimal.ROUND_DOWN).doubleValue(); + }else if (RemainderHandleEnum.ROUND_UP.getKey().equals(wscl)){ + result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(0,BigDecimal.ROUND_UP).doubleValue(); + } + + return result; + } + + /** + * 初始化插入假期余额参数 + * @param vocationMap 假期集合 + * @param userId 员工id + * @param qsrq 起算日期 + * @param ffsj 发放时间 + * @return + */ + public static Map getInsertHoliDayParam(Map vocationMap,String userId,String qsrq,String ffsj){ + Map param = Maps.newHashMap(); + //额度有效期间单位 + String edyxq = Util.null2String(vocationMap.get("edyxq")); + //额度有效期间 + int edyxqsz = Double.valueOf(Util.null2String(vocationMap.get("edyxqsz"))).intValue(); + //提前执行发放操作的天数 + int dqtqffts = Integer.valueOf(Util.null2String(vocationMap.get("dqtqffts"))); + //结余未休处理 + String jywxcl = Util.null2String(vocationMap.get("jywxcl")); + //延期时长 + String yqsc = Util.null2String(vocationMap.get("yqsc")); + //执行发放的时间点 + String ffdtffsj = Util.null2String(vocationMap.get("ffdtffsj")); + + param.put("lyid",vocationMap.get("dataid")); + param.put("jqid",vocationMap.get("jb")); + param.put("ygid",userId); + param.put("qsrq",qsrq); + param.put("ffsj",ffsj); + + if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())){ + String nowEndYearTime = ffsj.split("-")[0]+"-12-31"; + String forWardTime = DateUtil.beforeDay(nowEndYearTime,dqtqffts) +" "+ffdtffsj; + if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){ + //发放下一年 + String nextYear = DateUtil.nextYear(ffsj,1,DateUtil.yyyyMMdd); + String jzrq = DateUtil.nextYear(nextYear,edyxqsz-1,DateUtil.yyyyMMdd); + param.put("sxrq",nextYear.split("-")[0]+"-01-01"); + param.put("jzrq",jzrq.split("-")[0]+"-12-31"); + }else { + //发放当年 + param.put("sxrq",ffsj.split("-")[0]+"-01-01"); + param.put("jzrq",DateUtil.nextYear(ffsj.split("-")[0]+"-12-31",edyxqsz-1,DateUtil.yyyyMMdd)); + } + + }else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){ + String startTime = ffsj.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+qsrq.split("-")[2]; + String beforeStartTime = DateUtil.beforeYear(startTime,1,DateUtil.yyyyMMdd); + String beforeEndTime = DateUtil.beforeDay(startTime,1); + String endTime = DateUtil.nextYear(beforeEndTime,1,DateUtil.yyyyMMdd); + String forWardTime = DateUtil.beforeDay(beforeEndTime,dqtqffts) +" "+ffdtffsj; + + if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){ + //发放下一周期 + param.put("sxrq",startTime); + param.put("jzrq",DateUtil.nextYear(endTime,edyxqsz-1,DateUtil.yyyyMMdd)); + }else { + //发放当前周期 + param.put("sxrq",beforeStartTime); + param.put("jzrq",DateUtil.nextYear(beforeEndTime,edyxqsz-1,DateUtil.yyyyMMdd)); + } + + }else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){ + String sxrq = DateUtil.nextMonth(ffsj,1,DateUtil.yyyyMM)+"-01"; + int days = DateUtil.getDays(sxrq,Calendar.DAY_OF_MONTH); + String jzrq = DateUtil.nextMonth(sxrq,edyxqsz-1,DateUtil.yyyyMM) +"-"+days; + + String beforeSxrq = ffsj.split("-")[0]+"-"+ffsj.split("-")[1]+"-01"; + int beforeDays = DateUtil.getDays(beforeSxrq,Calendar.DAY_OF_MONTH); + String beforeJzrq = DateUtil.nextMonth(beforeSxrq,edyxqsz-1,DateUtil.yyyyMM); + int beforeJzrqDays = DateUtil.getDays(beforeJzrq,Calendar.DAY_OF_MONTH); + beforeJzrq = beforeJzrq +"-"+beforeJzrqDays; + + String forWardTime = DateUtil.beforeDay(ffsj.split("-")[0]+"-"+ffsj.split("-")[1]+"-"+beforeDays,dqtqffts)+" "+ffdtffsj; + + if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){ + //发放下一月份 + param.put("sxrq",sxrq); + param.put("jzrq",jzrq); + }else { + //发放当前月份 + param.put("sxrq",beforeSxrq); + param.put("jzrq",beforeJzrq); + } + + }else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){ + String sxrq = ffsj.split("-")[0]+"-"+ffsj.split("-")[1]+"-"+qsrq.split("-")[2]; + String beforeEndTime = DateUtil.beforeDay(sxrq,1); + String beforeSxrq = DateUtil.beforeMonth(sxrq,1); + String beforeJzrq = DateUtil.nextMonth(beforeEndTime,edyxqsz-1,DateUtil.yyyyMM); + String jzrq = DateUtil.nextMonth(beforeEndTime,edyxqsz,DateUtil.yyyyMM); + + String forWardTime = DateUtil.beforeDay(beforeEndTime,dqtqffts)+" "+ffdtffsj; + + if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){ + //发放下一月份 + param.put("sxrq",sxrq); + param.put("jzrq",jzrq); + }else { + //发放当前月份 + param.put("sxrq",beforeSxrq); + param.put("jzrq",beforeJzrq); + } + + }else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){ + int dayOfWeek = TimeUtil.getDayOfWeek(ffsj); + if (dayOfWeek == 0){ + dayOfWeek = 7; + } + String time = ffsj.split("-")[0]+"-"+ffsj.split("-")[1] +"-"+ffsj.split(" ")[0].split("-")[2]; + String sxrq = DateUtil.AfterDay(time,8-dayOfWeek); + String beforeSxrq = DateUtil.beforeMonth(time,dayOfWeek-1); + String beforeJxrq = DateUtil.AfterDay(time,8-dayOfWeek); + + String forWardTime = DateUtil.beforeDay(beforeJxrq,dqtqffts)+" "+ffdtffsj; + + if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){ + //发放下一周 + param.put("sxrq",sxrq); + param.put("jzrq",DateUtil.AfterDay(sxrq,7*edyxqsz-1)); + }else { + //发放当前周 + param.put("sxrq",beforeSxrq); + param.put("jzrq",DateUtil.AfterDay(beforeSxrq,7*edyxqsz-1)); + } + + + + }else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){ + + String time = ffsj.split("-")[0]+"-"+ffsj.split("-")[1] +"-"+ffsj.split(" ")[0].split("-")[2]; + int days = DateUtil.getBetWeenDays(qsrq,time); + int residueDays = days%7; + String beforeSxrq = DateUtil.beforeDay(time,residueDays); + String beforeEndTime = DateUtil.AfterDay(beforeSxrq,6); + String sxrq = DateUtil.AfterDay(beforeSxrq,7); + + String forWardTime = DateUtil.beforeDay(beforeEndTime,dqtqffts)+" "+ffdtffsj; + + if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){ + //发放下一周周期 + param.put("sxrq",sxrq); + param.put("jzrq",DateUtil.AfterDay(sxrq,7*edyxqsz-1)); + }else { + //发放当前周期 + param.put("sxrq",beforeSxrq); + param.put("jzrq",DateUtil.AfterDay(beforeSxrq,7*edyxqsz-1)); + } + + }else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ + String sxrq = DateUtil.AfterDay(ffsj.split(" ")[0],1); + param.put("sxrq",sxrq); + param.put("jzrq",sxrq); + } + + if (BalanceHandleEnum.DELAY.getKey().equals(jywxcl)){ + if (DelayTypeEnum.ONE_MONTH.getKey().equals(yqsc)){ + //一个月 + param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),1,DateUtil.yyyyMMdd)); + }else if (DelayTypeEnum.TWO_MONTH.getKey().equals(yqsc)){ + //两个月 + param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),2,DateUtil.yyyyMMdd)); + }else if (DelayTypeEnum.THREE_MONTH.getKey().equals(yqsc)){ + //三个月 + param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),3,DateUtil.yyyyMMdd)); + }else if (DelayTypeEnum.HALF_YEAR.getKey().equals(yqsc)){ + //半年 + param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),6,DateUtil.yyyyMMdd)); + }else if (DelayTypeEnum.ONE_YEAR.getKey().equals(yqsc)){ + //一年 + param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),12,DateUtil.yyyyMMdd)); + } + } + return param; + } + + /** + * 更新假期余额 + * @param tableName 假期余额表名 + * @param dataMap 参数 + */ + public static void updateHolidayBalance(String tableName,Map dataMap,List> dataList){ + log.info("updateHolidayBalance dataMap:[{}]",dataMap); + String lyid = Util.null2String(dataMap.get("lyid")); + String ygid = Util.null2String(dataMap.get("ygid")); + String jqid = Util.null2String(dataMap.get("jqid")); + String sxrq = Util.null2String(dataMap.get("sxrq")); + String jzrq = Util.null2String(dataMap.get("jzrq")); + + if (dataList.size()>0){ + Map condition = Maps.newHashMap(); + condition.put("id",dataList.get(0).get("id")); + DbTools.update(CommonUtil.makeUpdateSql(tableName,dataMap,condition)); + }else { + Utils.InsertFormTable(tableName, dataMap, Utils.getFormmodeIdMap()); + } + + } + + /** + * 该周期是否已存在 + * @param tableName + * @param dataMap + * @return + */ + public static List> ifexist(String tableName,Map dataMap){ + log.info("updateHolidayBalance dataMap:[{}]",dataMap); + String lyid = Util.null2String(dataMap.get("lyid")); + String ygid = Util.null2String(dataMap.get("ygid")); + String jqid = Util.null2String(dataMap.get("jqid")); + String sxrq = Util.null2String(dataMap.get("sxrq")); + String jzrq = Util.null2String(dataMap.get("jzrq")); + String sql = "select id from "+tableName +" where lyid=? and ygid=? and jqid=? and sxrq=? and jzrq=?"; + List> dataList = DbTools.getSqlToList(sql,lyid,ygid,jqid,sxrq,jzrq); + + return dataList; + } +} diff --git a/src/com/engine/attendance/vacation/web/VocationAction.java b/src/com/engine/attendance/vacation/web/VocationAction.java new file mode 100644 index 0000000..efd8996 --- /dev/null +++ b/src/com/engine/attendance/vacation/web/VocationAction.java @@ -0,0 +1,54 @@ +package com.engine.attendance.vacation.web; + + +import com.engine.attendance.vacation.service.VocationService; +import com.engine.attendance.vacation.service.impl.VocationServiceImpl; +import com.engine.common.util.ApiReturnTools; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.common.util.Utils; +import lombok.extern.slf4j.Slf4j; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import java.util.Map; + +@Slf4j +public class VocationAction { + + + private VocationService vocationService = ServiceUtil.getService(VocationServiceImpl.class); + + /** + * tableName 表名 + * columns 查询的列名 + * conditions 查询条件 + * orderby 排序及limit + * @return + */ + @GET + @Path("/generateVocation") + @Produces({"text/plain"}) + public String generateVocation(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + Map paramMap = ParamUtil.request2Map(request); + Map formmodeIdMap = Utils.getFormmodeIdMap(); + //假期额度模块id + String modeId = formmodeIdMap.get("uf_jcl_kq_jqed"); + paramMap.put("modeId",modeId); + Map dataMap = vocationService.generateVocation(paramMap); + return ApiReturnTools.success(dataMap); + }catch (Exception e){ + log.error("sync fund status fail,catch error: [{}]",e); + return ApiReturnTools.error("200","查询失败"); + } + } + + + + +} diff --git a/src/com/engine/common/cmd/GetPersonDateBySuitOrganzation.java b/src/com/engine/common/cmd/GetPersonDateBySuitOrganzation.java index f6fd37d..c7d697d 100644 --- a/src/com/engine/common/cmd/GetPersonDateBySuitOrganzation.java +++ b/src/com/engine/common/cmd/GetPersonDateBySuitOrganzation.java @@ -5,13 +5,10 @@ import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; import com.engine.common.util.DbTools; import com.engine.core.interceptor.CommandContext; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import weaver.general.Util; - -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -35,10 +32,10 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand execute(CommandContext commandContext) { String modeId = Util.null2String(params.get("modeId")); - String sql = "select dxlx,aqjb,dataid,dx from uf_syzz where modeid=?"; + String sql = "select dxlx,aqjb,dataid,dx from uf_jcl_syzz where modeid=?"; //假期额度适用组织所有值集合 List> organzationList = DbTools.getSqlToList(sql,modeId); - sql = "select a.id dataid,a.*,b.* from uf_jcl_kq_jqed a left join uf_jcl_kq_jqed_dt1 b on a.id=b.mainid"; + sql = "select a.id dataid,b.id detailid,a.*,b.* from uf_jcl_kq_jqed a left join uf_jcl_kq_jqed_dt1 b on a.id=b.mainid"; //所有假期额度生成规则值 List> vacationList = DbTools.getSqlToList(sql); //人力资源id,(假别,规则id) @@ -50,8 +47,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand subCompanyMap = Maps.newHashMap(); - //以假期额度生成规则id分割的适用组织所有值集合 - Map>> organzationCollect = organzationList.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("dataid")))); + //规则id-对象id,安全级别 Map organzationByMap = Maps.newHashMap(); for (Map map : organzationList){ @@ -71,7 +67,14 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand vacationMap = vacationList.stream().collect(Collectors.toMap(e->e.get("dataid").toString(),e->e.get("jb").toString())); + Map vacationMap = Maps.newHashMap(); + for (Map vocation:vacationList){ + vacationMap.put(vocation.get("dataid").toString(),vocation.get("jb").toString()); + } + + + Map>> vacationGroupByDataIdMap = vacationList.stream().collect(Collectors.groupingBy(e->e.get("dataid").toString())); + Set personOrganzationIds = Sets.newHashSet(); Set departMentIds = Sets.newHashSet(); @@ -128,36 +131,43 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand> hrmListByDepartAndSubCompanyIds = DbTools.getSqlToList(sql); - //分部id-人员id集合 - Map>> hrmListGroupByDepart = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("departmentid")))); //部门id-人员id集合 + Map>> hrmListGroupByDepart = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("departmentid")))); + log.info("hrmListGroupByDepart : [{}]",hrmListGroupByDepart); + //分部id-人员id集合 Map>> hrmListGroupBySubCompany = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("subcompanyid1")))); + log.info("hrmListGroupBySubCompany : [{}]",hrmListGroupBySubCompany); //人员分组id-人员id集合 - Map> personGroupUserIds = getPersonGroupUserIds(personOrganzationIds); - - //人员分组id-(假别,假期规则id) - for (Map.Entry entry : personOrganzationMap.entrySet()){ - String personGroupId = entry.getKey(); - //人员分组(假别,假期规则id) - Map personGroupHolidayMap = (Map)entry.getValue(); - Set userIds = personGroupUserIds.get(personGroupId); - for (String userId :userIds){ - //人力资源原本已有的假期,(假别,规则id) - Map psersonSet = personMap.get(userId) == null?null:(Map)personMap.get(userId); - if (psersonSet == null) { - personMap.put(userId,personGroupHolidayMap); - }else { - Map newMap = Maps.newHashMap(); - for (Map.Entry personGroupHolidayEntry :personGroupHolidayMap.entrySet()){ - if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){ - newMap.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue()); + if (personOrganzationIds.size() >0){ + //人员分组id-(假别,假期规则id) + Map> personGroupUserIds = getPersonGroupUserIds(personOrganzationIds); + log.info("personGroupUserIds : [{}]",personGroupUserIds); + log.info("personOrganzationMap : [{}]",personOrganzationMap); + for (Map.Entry entry : personOrganzationMap.entrySet()){ + String personGroupId = entry.getKey(); + //人员分组(假别,假期规则id) + Map personGroupHolidayMap = (Map)entry.getValue(); + Set userIds = personGroupUserIds.get(personGroupId); + for (String userId :userIds){ + //人力资源原本已有的假期,(假别,规则id) + Map psersonSet = personMap.get(userId) == null?null:(Map)personMap.get(userId); + if (psersonSet == null) { + personMap.put(userId,personGroupHolidayMap); + }else { + for (Map.Entry personGroupHolidayEntry :personGroupHolidayMap.entrySet()){ + if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){ + psersonSet.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue()); + } } + personMap.put(userId,psersonSet); } - personMap.put(userId,newMap); } } } + + log.info("before personMap : [{}]",personMap); //部门id + log.info("departMentMap : [{}]",departMentMap); for (Map.Entry entry : departMentMap.entrySet()){ String departMentId = entry.getKey(); //部门(假别,假期规则id) @@ -170,17 +180,17 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand newMap = Maps.newHashMap(); for (Map.Entry personGroupHolidayEntry :departMentHolidayMap.entrySet()){ if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){ - newMap.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue()); + psersonSet.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue()); } } - personMap.put(userId,newMap); + personMap.put(userId,psersonSet); } } } //分部id + log.info("subCompanyMap : [{}]",subCompanyMap); for (Map.Entry entry : subCompanyMap.entrySet()){ String subCompanyId = entry.getKey(); //分部(假别,假期规则id) @@ -193,18 +203,29 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand newMap = Maps.newHashMap(); for (Map.Entry personGroupHolidayEntry :subCompanyHolidayMap.entrySet()){ if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){ - newMap.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue()); + psersonSet.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue()); } } - personMap.put(userId,newMap); + personMap.put(userId,psersonSet); } } } log.info("personMap : [{}]",personMap); - return personMap; + Map newpersonMap = Maps.newHashMap(); + for (Map.Entry entry :personMap.entrySet()){ + String userId = entry.getKey(); + Map vocationMap = (Map)entry.getValue(); + Map dataMap = Maps.newHashMap(); + for (Map.Entry vocationEntry :vocationMap.entrySet()){ + String jb = vocationEntry.getKey(); + String dataId = vocationEntry.getValue(); + dataMap.put(jb,vacationGroupByDataIdMap.get(dataId)); + } + newpersonMap.put(userId,dataMap); + } + return newpersonMap; } /** diff --git a/src/com/engine/common/util/CommonUtil.java b/src/com/engine/common/util/CommonUtil.java index 6003c6f..6c9ac8e 100644 --- a/src/com/engine/common/util/CommonUtil.java +++ b/src/com/engine/common/util/CommonUtil.java @@ -60,7 +60,7 @@ public class CommonUtil { public static Set getDataIds(String resourceId,String modeId,String startDate,String endDate){ - String sql = "select dxlx,dataid,dx from uf_syzz where modeid=?"; + String sql = "select dxlx,dataid,dx from uf_jcl_syzz where modeid=?"; List> organizationList = DbTools.getSqlToList(sql,modeId); sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?"; Map departMentMap = DbTools.getSqlToMap(sql,resourceId); diff --git a/src/com/engine/common/util/DateUtil.java b/src/com/engine/common/util/DateUtil.java index ce53d87..b39fdd6 100644 --- a/src/com/engine/common/util/DateUtil.java +++ b/src/com/engine/common/util/DateUtil.java @@ -1,21 +1,22 @@ package com.engine.common.util; -import java.time.Duration; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.Period; +import weaver.general.TimeUtil; + +import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; +import java.util.Calendar; public class DateUtil { public static DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyy-MM-dd"); public static DateTimeFormatter yyyyMMddHHmmss = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public static DateTimeFormatter yyyyMMddHHmm = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); public static DateTimeFormatter yyyyMM = DateTimeFormatter.ofPattern("yyyy-MM"); + public static DateTimeFormatter yyyy = DateTimeFormatter.ofPattern("yyyy"); - public static String beforeMonth(String time){ + public static String beforeMonth(String time,int month){ LocalDateTime localDateTime = DateUtil.getTime(time); - return localDateTime.minusMonths(1).format(yyyyMM); + return localDateTime.minusMonths(month).format(yyyyMMdd); } public static String lastMonth(String time){ LocalDateTime localDateTime = DateUtil.getTime(time); @@ -32,6 +33,16 @@ public class DateUtil { return localDateTime.plusMonths(month).format(dateTimeFormatter); } + public static String nextYear(String time,int year,DateTimeFormatter dateTimeFormatter){ + LocalDateTime localDateTime = DateUtil.getTime(time); + + return localDateTime.plusYears(year).format(dateTimeFormatter); + } + public static String beforeYear(String time,int year,DateTimeFormatter dateTimeFormatter){ + LocalDateTime localDateTime = DateUtil.getTime(time); + + return localDateTime.minusYears(year).format(dateTimeFormatter); + } public static String beforeDay(String time,long day){ @@ -102,6 +113,7 @@ public class DateUtil { public static long getBetWeenHours(String startTime){ Duration duration = Duration.between(LocalDateTime.parse(startTime,yyyyMMddHHmmss),LocalDateTime.now()); + return duration.toHours(); } /** @@ -111,6 +123,7 @@ public class DateUtil { */ public static int getBetWeenYears(String startTime){ Period duration = Period.between(LocalDate.parse(startTime,yyyyMMdd),LocalDateTime.now().toLocalDate()); + return duration.getYears(); } @@ -121,10 +134,28 @@ public class DateUtil { */ public static int getBetWeenYears(String startTime,String endTime){ Period duration = Period.between(LocalDate.parse(startTime,yyyyMMdd),LocalDate.parse(endTime,yyyyMMdd)); - return duration.getYears(); } + /** + * 获得两个时间相差的月份 + * @param startTime 开始时间 yyyy-MM-dd + * @return + */ + public static int getBetWeenMonths(String startTime,String endTime){ + LocalDateTime startDate = DateUtil.getTime(startTime); + LocalDateTime endDate = DateUtil.getTime(endTime); + + YearMonth startYearMonth = YearMonth.from(startDate); + YearMonth endYearMonth = YearMonth.from(endDate); + + int betweenMonth = (int) ChronoUnit.MONTHS.between(startYearMonth, endYearMonth); + if (startDate.getDayOfMonth()>endDate.getDayOfMonth()){ + betweenMonth= betweenMonth-1; + } + return betweenMonth; + } + /** * 获得当前时间相差的天数 * @param startTime 开始时间 yyyy-MM-dd @@ -181,10 +212,37 @@ public class DateUtil { * @return */ public static long getBetWeenHours(String startTime,String endTime){ - Duration duration = Duration.between(LocalDateTime.parse(startTime,yyyyMMddHHmmss),LocalDateTime.parse(endTime,yyyyMMddHHmmss)); + Duration duration = Duration.between(getTime(startTime),getTime(endTime)); return duration.toHours(); } + /** + * 获得两个时间相差的周 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + public static int getBetweenWeeks(String startTime,String endTime){ + int days = getBetWeenDays(startTime,endTime); + int dayOfWeek = TimeUtil.getDayOfWeek(startTime); + if (dayOfWeek == 0){ + dayOfWeek = 7; + } + days = days-(7-dayOfWeek); + + return days/7; + } + + /** + * 获得该月份的天数 + * @param time + * @return + */ + public static int getDays(String time,int CalendarType){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Integer.valueOf(time.split("-")[0]), Integer.valueOf(time.split("-")[1]) - 1, 1); + return calendar.getActualMaximum(CalendarType); + } } diff --git a/src/com/engine/common/util/Utils.java b/src/com/engine/common/util/Utils.java index a0d1c7f..4445bdd 100644 --- a/src/com/engine/common/util/Utils.java +++ b/src/com/engine/common/util/Utils.java @@ -537,8 +537,4 @@ public class Utils { } return 0; } - public static void test1(){ - Object obj = new Object(); - System.out.println(obj); - } } diff --git a/target/classes/com/api/attendance/vocation/VocationActionApi.class b/target/classes/com/api/attendance/vocation/VocationActionApi.class new file mode 100644 index 0000000..94cef9a Binary files /dev/null and b/target/classes/com/api/attendance/vocation/VocationActionApi.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/README.md b/target/classes/com/engine/attendance/attendanceanalysis/README.md deleted file mode 100644 index 123ba41..0000000 --- a/target/classes/com/engine/attendance/attendanceanalysis/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# attendance.attendanceAnalysis -## 考勤分析模块 -## 用于计算分析人员的考勤,算出正常上下班、加班、早退、迟到等一些列考勤项目,并入到出勤结果表 - diff --git a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class index 727bf14..47226fc 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class and b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class b/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class index 8ab244a..7f2d924 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class and b/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class differ diff --git a/target/classes/com/engine/attendance/attendanceplan/README.md b/target/classes/com/engine/attendance/attendanceplan/README.md deleted file mode 100644 index e71d698..0000000 --- a/target/classes/com/engine/attendance/attendanceplan/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# attendance.attendanceAnalysis -## 考勤方案模块 -## - diff --git a/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class b/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class index 9fe54fb..2b1d7da 100644 Binary files a/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class and b/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class differ diff --git a/target/classes/com/engine/attendance/component/README.md b/target/classes/com/engine/attendance/component/README.md deleted file mode 100644 index 6fc597b..0000000 --- a/target/classes/com/engine/attendance/component/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# attendance.attendanceAnalysis -## 考勤组件模块 -## person_group 人员分组功能组件 - diff --git a/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class b/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class index 4380c8d..130f146 100644 Binary files a/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class and b/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class index a00c46a..6102571 100644 Binary files a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class index 1da1568..65db756 100644 Binary files a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class index 83836d8..23e5f63 100644 Binary files a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class index 09dc816..abfe8fb 100644 Binary files a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class b/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class index 0a2b79e..3ad5af1 100644 Binary files a/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class and b/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/enums/AdjustStartingTimeEnum.class b/target/classes/com/engine/attendance/enums/AdjustStartingTimeEnum.class new file mode 100644 index 0000000..ba7c6a7 Binary files /dev/null and b/target/classes/com/engine/attendance/enums/AdjustStartingTimeEnum.class differ diff --git a/target/classes/com/engine/attendance/enums/BalanceHandleEnum.class b/target/classes/com/engine/attendance/enums/BalanceHandleEnum.class new file mode 100644 index 0000000..4d7620d Binary files /dev/null and b/target/classes/com/engine/attendance/enums/BalanceHandleEnum.class differ diff --git a/target/classes/com/engine/attendance/enums/DelayTypeEnum.class b/target/classes/com/engine/attendance/enums/DelayTypeEnum.class new file mode 100644 index 0000000..36fe7c5 Binary files /dev/null and b/target/classes/com/engine/attendance/enums/DelayTypeEnum.class differ diff --git a/target/classes/com/engine/attendance/enums/QuotaChangeMethodEnum.class b/target/classes/com/engine/attendance/enums/QuotaChangeMethodEnum.class new file mode 100644 index 0000000..98d1bb8 Binary files /dev/null and b/target/classes/com/engine/attendance/enums/QuotaChangeMethodEnum.class differ diff --git a/target/classes/com/engine/attendance/enums/RemainderHandleEnum.class b/target/classes/com/engine/attendance/enums/RemainderHandleEnum.class new file mode 100644 index 0000000..df93fdf Binary files /dev/null and b/target/classes/com/engine/attendance/enums/RemainderHandleEnum.class differ diff --git a/target/classes/com/engine/attendance/enums/StartingUnitEnum.class b/target/classes/com/engine/attendance/enums/StartingUnitEnum.class new file mode 100644 index 0000000..1adccde Binary files /dev/null and b/target/classes/com/engine/attendance/enums/StartingUnitEnum.class differ diff --git a/target/classes/com/engine/attendance/vacation/cmd/VocationCmd.class b/target/classes/com/engine/attendance/vacation/cmd/VocationCmd.class new file mode 100644 index 0000000..b4ef733 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/cmd/VocationCmd.class differ diff --git a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class index ae9f22e..3de3fa7 100644 Binary files a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class and b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class differ diff --git a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.class b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.class new file mode 100644 index 0000000..10827bc Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.class differ diff --git a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.class b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.class new file mode 100644 index 0000000..31977e8 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.class differ diff --git a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.class b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.class new file mode 100644 index 0000000..9119a2b Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.class differ diff --git a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class new file mode 100644 index 0000000..5e0ecfc Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class differ diff --git a/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.class b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.class new file mode 100644 index 0000000..3fdcbb5 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.class differ diff --git a/target/classes/com/engine/attendance/vacation/service/VocationService.class b/target/classes/com/engine/attendance/vacation/service/VocationService.class new file mode 100644 index 0000000..5ebc9b4 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/service/VocationService.class differ diff --git a/target/classes/com/engine/attendance/vacation/service/impl/VocationServiceImpl.class b/target/classes/com/engine/attendance/vacation/service/impl/VocationServiceImpl.class new file mode 100644 index 0000000..a4fdf46 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/service/impl/VocationServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.class b/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.class new file mode 100644 index 0000000..24c35a1 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.class differ diff --git a/target/classes/com/engine/attendance/vacation/web/VocationAction.class b/target/classes/com/engine/attendance/vacation/web/VocationAction.class new file mode 100644 index 0000000..cfcf281 Binary files /dev/null and b/target/classes/com/engine/attendance/vacation/web/VocationAction.class differ diff --git a/target/classes/com/engine/attendance/workflow/README.md b/target/classes/com/engine/attendance/workflow/README.md deleted file mode 100644 index 1097df6..0000000 --- a/target/classes/com/engine/attendance/workflow/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# attendance.attendanceAnalysis -## 考勤流程模块 -## - diff --git a/target/classes/com/engine/common/cmd/GetPersonDateBySuitOrganzation.class b/target/classes/com/engine/common/cmd/GetPersonDateBySuitOrganzation.class index 7b1c60a..c221eca 100644 Binary files a/target/classes/com/engine/common/cmd/GetPersonDateBySuitOrganzation.class and b/target/classes/com/engine/common/cmd/GetPersonDateBySuitOrganzation.class differ diff --git a/target/classes/com/engine/common/util/CommonUtil.class b/target/classes/com/engine/common/util/CommonUtil.class index 0ae3e78..4d41e0d 100644 Binary files a/target/classes/com/engine/common/util/CommonUtil.class and b/target/classes/com/engine/common/util/CommonUtil.class differ diff --git a/target/classes/com/engine/common/util/DateUtil.class b/target/classes/com/engine/common/util/DateUtil.class index 7ba3d45..4db51eb 100644 Binary files a/target/classes/com/engine/common/util/DateUtil.class and b/target/classes/com/engine/common/util/DateUtil.class differ diff --git a/target/classes/com/engine/common/util/DbTools.class b/target/classes/com/engine/common/util/DbTools.class index 6e4e5cd..d5a13ea 100644 Binary files a/target/classes/com/engine/common/util/DbTools.class and b/target/classes/com/engine/common/util/DbTools.class differ diff --git a/target/classes/com/engine/common/util/Utils.class b/target/classes/com/engine/common/util/Utils.class index 6c63013..172b246 100644 Binary files a/target/classes/com/engine/common/util/Utils.class and b/target/classes/com/engine/common/util/Utils.class differ diff --git a/target/classes/weaver/formmode/customjavacode/modeexpand/DeleteCheckCalendar.class b/target/classes/weaver/formmode/customjavacode/modeexpand/DeleteCheckCalendar.class index 987896a..2511bb3 100644 Binary files a/target/classes/weaver/formmode/customjavacode/modeexpand/DeleteCheckCalendar.class and b/target/classes/weaver/formmode/customjavacode/modeexpand/DeleteCheckCalendar.class differ diff --git a/target/test-classes/TestBySchedulePaymentWay.class b/target/test-classes/TestBySchedulePaymentWay.class new file mode 100644 index 0000000..2e0fc5f Binary files /dev/null and b/target/test-classes/TestBySchedulePaymentWay.class differ diff --git a/target/test-classes/TestObj.class b/target/test-classes/TestObj.class index efd434a..cec826f 100644 Binary files a/target/test-classes/TestObj.class and b/target/test-classes/TestObj.class differ diff --git a/target/test-classes/TestSinglePaymentFullWay.class b/target/test-classes/TestSinglePaymentFullWay.class new file mode 100644 index 0000000..3633b30 Binary files /dev/null and b/target/test-classes/TestSinglePaymentFullWay.class differ diff --git a/test/TestBySchedulePaymentWay.java b/test/TestBySchedulePaymentWay.java new file mode 100644 index 0000000..a772ed1 --- /dev/null +++ b/test/TestBySchedulePaymentWay.java @@ -0,0 +1,26 @@ +import com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay; +import com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.gson.Gson; + +import java.lang.reflect.Type; +import java.util.List; +import java.util.Map; + +public class TestBySchedulePaymentWay { + public static void main(String[] args) { + Map param = Maps.newHashMap(); + param.put("userId","53"); + param.put("releaseDate","2023-01-29 00:00:00"); + + String json = "[{modedatamodifier=1, edyxqsz=1.00, modedatacreatertype=0, jgsc1=5.00, jgsc0=1.00, yqhedzgxz='', edbgsedclfs='2', edyxq='1', ljcrglyfslwz='1', edktsc=5.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-11-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='14', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='2', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'},{modedatamodifier=1, edyxqsz=2.00, modedatacreatertype=0, jgsc1=10.00, jgsc0=5.00, yqhedzgxz='', edbgsedclfs='2', edyxq='3', ljcrglyfslwz='1', edktsc=10.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-11-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='15', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='15', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'}]"; + Gson gson = new Gson(); + List> vocationList = Lists.newArrayList(); + vocationList = gson.fromJson(json, (Type) vocationList.getClass()); + System.out.println(vocationList); + + param.put("vocationList",vocationList); + new BySchedulePaymentWay().compute(param); + } +} diff --git a/test/TestObj.java b/test/TestObj.java index 85ac953..4773270 100644 --- a/test/TestObj.java +++ b/test/TestObj.java @@ -1,7 +1,61 @@ +import com.engine.attendance.vacation.util.VocationCommonUtil; +import com.engine.common.util.DateUtil; import com.engine.common.util.Utils; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import sun.misc.BASE64Decoder; +import weaver.general.TimeUtil; +import weaver.general.Util; + +import java.sql.Date; +import java.util.*; +import java.util.stream.Collectors; public class TestObj { - public static void main(String[] args) { - System.out.println("-".split("-")[0]); + public static void main(String[] args) throws Exception{ + Calendar calendar = Calendar.getInstance(); + calendar.set(Integer.valueOf("2024"), Integer.valueOf("04") - 1, 1); +// + // System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_YEAR)); + // System.out.println(DateUtil.getBetWeenHours("2024-01-03 15:00:00","2024-01-03 15:35")); + // System.out.println(DateUtil.getTime("2024-01-03 16:00:00").compareTo(DateUtil.getTime("2024-01-03 15:35"))); + //System.out.println(DateUtil.getBetWeenMonths("2021-12-01","2021-12-01")); + + // System.out.println(DateUtil.getTime("2023-01-01").getDayOfWeek()); + // System.out.println(TimeUtil.getWeekOfYear(Date.valueOf(DateUtil.getTime("2023-01-09").toLocalDate()))); + // System.out.println(DateUtil.beforeMonth("2023-11-15",3)); + +// System.out.println(DateUtil.getTime("2023-12-16 15:05:01").compareTo(DateUtil.getTime("2023-12-16 24:00:00"))); +// + List list = new ArrayList<>(); + + + // System.out.println(DateUtil.getBetWeenDays("2024-01-02","2024-01-10")); +// System.out.println(DateUtil.getBetWeenMonths("2021-06-01","2022-07-01")); +// System.out.println(DateUtil.beforeMonth("2023-01-01",6)); + System.out.println(DateUtil.getBetWeenYears("2023-05-01","2024-01-01")); + //System.out.println(DateUtil.getBetWeenDays("2023-01-01","2023-01-01")); +// System.out.println(DateUtil.getBetWeenDays("2023-08-02","2024-01-01")); + + + //System.out.println(VocationCommonUtil.computeRestDays(70,365,7,"4")); + //System.out.println(DateUtil.nextMonth("2023-11-25 15:22:11",1,DateUtil.yyyyMM)); +// System.out.println(DateUtil.getBetWeenYears("2023-05-01","2025-04-31")); +// List> vacationList = Lists.newArrayList(); +// vacationList.add(new HashMap(){{ +// put("dataid","18"); +// put("jb","112"); +// +// }}); +// vacationList.add(new HashMap(){{ +// put("dataid","18"); +// put("jb","112"); +// +// }}); +// +// Map vacationMap = Maps.newHashMap(); +// for (Map vocation:vacationList){ +// vacationMap.put(vocation.get("dataid").toString(),vocation.get("jb").toString()); +// } } } diff --git a/test/TestSinglePaymentFullWay.java b/test/TestSinglePaymentFullWay.java new file mode 100644 index 0000000..eb8c158 --- /dev/null +++ b/test/TestSinglePaymentFullWay.java @@ -0,0 +1,44 @@ +import com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.gson.Gson; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TestSinglePaymentFullWay { + public static void main(String[] args) throws Exception{ + Map param = Maps.newHashMap(); + param.put("userId","53"); + param.put("releaseDate","2021-12-01 00:00:00"); + + String json = "[{modedatamodifier=1, edyxqsz=1.00, modedatacreatertype=0, jgsc1=5.00, jgsc0=1.00, yqhedzgxz='', edbgsedclfs='1', edyxq='0', ljcrglyfslwz='18', edktsc=5.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-05-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='14', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='2', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'},{modedatamodifier=1, edyxqsz=2.00, modedatacreatertype=0, jgsc1=10.00, jgsc0=5.00, yqhedzgxz='', edbgsedclfs='1', edyxq='0', ljcrglyfslwz='1', edktsc=10.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-05-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='15', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='15', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'}]"; + Gson gson = new Gson(); + List> vocationList = Lists.newArrayList(); + vocationList = gson.fromJson(json, (Type) vocationList.getClass()); + System.out.println(vocationList); +// List> vocationList = Lists.newArrayList(); +// vocationList.add(new HashMap(){{ +// put("edsc","9.50"); +// put("bdlx","0"); +// put("jsdk","1"); +// put("tqdkfzs","720"); +// put("sfkt","1"); +// put("dtjssj","12:00"); +// put("zddxfz","30"); +// put("bcxx","25"); +// put("dxhs","5"); +// put("bcsdxx","09:00-13:00|13:00-18:30"); +// put("sfdx","0"); +// put("dtkssj","09:00"); +// put("thdkfzs","720"); +// put("ksdk","0"); +// put("rqlx","11"); +// }}); + + param.put("vocationList",vocationList); + new SinglePaymentInFullWay().compute(param); + } +}