diff --git a/log/sdk.log b/log/sdk.log index a395a05..39d6567 100644 --- a/log/sdk.log +++ b/log/sdk.log @@ -776,3 +776,43 @@ 2023-11-28 20:02:25,545 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties 2023-12-05 21:53:39,011 [Timer-0] [A2] [INFO] - rootPath == null 2023-12-05 21:53:39,021 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties +2023-12-06 21:11:34,881 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[]] +2023-12-06 21:11:34,884 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[]] +2023-12-06 21:13:56,396 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=1, rqlx=11}]] +2023-12-06 21:13:56,418 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=1, rqlx=11}]] +2023-12-06 21:15:09,101 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:15:09,128 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:15:32,742 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:15:32,761 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:16:02,964 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:16:02,994 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:16:03,269 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:16:03,287 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=10:00, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:17:07,642 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=1, rqlx=11}]] +2023-12-06 21:17:07,674 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:17:44,635 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:17:44,655 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=16:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:20:15,010 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-06 21:20:15,030 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:20:25,933 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:20:25,965 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:21:00,062 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:21:00,082 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:22:24,380 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:22:24,400 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:27:24,496 [Timer-0] [A2] [INFO] - rootPath == null +2023-12-07 10:27:24,496 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties +2023-12-07 10:48:34,530 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:48:34,547 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:49:56,290 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:49:56,311 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:50:59,235 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:50:59,255 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:51:37,466 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:51:37,487 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=60, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=60, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=60, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:53:10,609 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 未重新计算卡点时 老的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=120, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=120, ksdk=1, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=120, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=120, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:53:10,629 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - 经过重新计算卡点时 新的scheduleResult : [[{edsc=9.50, bdlx=0, jsdk=0, tqdkfzs=120, sfkt=1, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=09:00, thdkfzs=120, ksdk=0, rqlx=11}, {edsc=9.50, bdlx=0, jsdk=1, tqdkfzs=120, sfkt=1, dtjssj=18:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=13:00, thdkfzs=120, ksdk=0, rqlx=11}]],askForLeaveAndEvctionScheduleList:[[{edsc=9.50, bdlx=7, jsdk=0, tqdkfzs=60, sfkt=1, dtjssj=17:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=1, dtkssj=08:30, thdkfzs=60, ksdk=0, rqlx=11}]] +2023-12-07 10:58:10,710 [Timer-0] [A2] [INFO] - rootPath == null +2023-12-07 10:58:10,711 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties +2023-12-07 17:05:11,529 [main] [com.engine.common.util.Utils] [INFO] - removeRestTime scheduleResult : [{edsc=9.50, bdlx=1, jsdk=1, tqdkfzs=120, sfkt=0, dtjssj=13:00, zddxfz=30, bcxx=25, dxhs=5, bcsdxx=09:00-13:00|13:00-18:30, sfdx=0, dtkssj=12:00, thdkfzs=120, ksdk=0, rqlx=11}] +2023-12-07 17:05:11,538 [main] [com.engine.common.util.Utils] [INFO] - 休息时间在请假时间 右边 diff --git a/out/artifacts/hrm_attendance/hrm-attendance.jar b/out/artifacts/hrm_attendance/hrm-attendance.jar index ce98189..32c76e7 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/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.java b/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.java index 4b0f97c..bce74cf 100644 --- a/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.java +++ b/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.java @@ -148,7 +148,22 @@ public class GetClockInPointCmd extends AbstractCommonCommandDateUtil.getTime(analysisDate+" "+e.get("dtkssj")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); } - List>> clcokInTimeData = getClockInPoint(analysisDate, scheduleResult, clockInTimeList); + List needClockDateList = Lists.newArrayList(); + for (int i=0;i 0) { + dtjssj = DateUtil.AfterDay(analysisDate, 1) + " " + scheduleResult.get(i).get("dtjssj"); + } + if (CheckBoxEnum.CHECKED.getKey().equals(scheduleResult.get(i).get("ksdk"))) { + needClockDateList.add(dtkssj); + } + if (CheckBoxEnum.CHECKED.getKey().equals(scheduleResult.get(i).get("jsdk"))){ + needClockDateList.add(dtjssj); + } + } + + List>> clcokInTimeData = getClockInPoint(analysisDate, scheduleResult, clockInTimeList,needClockDateList); resultMap.put("clcokInTimeData", clcokInTimeData); return resultMap; } @@ -159,10 +174,11 @@ public class GetClockInPointCmd extends AbstractCommonCommand>> getClockInPoint(String analysisDate, List> scheduleResult, List> clockInTimeList) { + public List>> getClockInPoint(String analysisDate, List> scheduleResult, List> clockInTimeList, List needClockDateList) { /** * 正常排班进行卡点 @@ -191,7 +207,8 @@ public class GetClockInPointCmd extends AbstractCommonCommand 0) { + if (getBeforeClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getBeforeClockTime(needClockDateList,dtjssj))) > 0) { timeType = ClockPointEnum.BEFORE.getKey(); } } @@ -457,4 +474,33 @@ public class GetClockInPointCmd extends AbstractCommonCommand needClockDateList,String time){ + int index = 0; + for (int i=0;i needClockDateList,String time){ + int index = 0; + for (int i=0;i 0){ + return needClockDateList.get(index); + }else { + return ""; + } + } } diff --git a/src/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.java b/src/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.java index 8828424..c85557f 100644 --- a/src/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.java +++ b/src/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.java @@ -6,6 +6,7 @@ import com.engine.common.entity.BizLogContext; import com.engine.common.util.DateUtil; 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.icbc.api.internal.apache.http.impl.cookie.S; import weaver.conn.RecordSet; @@ -88,15 +89,24 @@ public class UpdateAttendanceResultsCmd extends AbstractCommonCommand> scheduleList = params.get("scheduleList") == null? Lists.newArrayList():(List>)params.get("scheduleList"); String sql = "select subcompanyid1,departmentid,jobtitle from hrmresource where id=?"; + String rqlx = ""; + String sfxx = ""; + String cqzt = "1"; + if (scheduleList.size()>0){ + rqlx = Util.null2String(scheduleList.get(0).get("rqlx")); + sfxx = Util.null2String(scheduleList.get(0).get("sfxx")); + cqzt = "0"; + } List> userList = DbTools.getSqlToList(sql,userId); if (dataList.size() >0){ - sql = "update uf_jcl_kq_cqjg set xm1=?,cqzt=1,cqsc=0,sjzt=1 where ygid=? and rq=?"; + sql = "update uf_jcl_kq_cqjg set xm1=?,cqzt="+cqzt+",cqsc=0,sjzt=1,rqlx="+rqlx+",sfxx="+sfxx+" where ygid=? and rq=?"; DbTools.update(rs,sql,SystemItemEnum.NO_SCHEDULING.getKey(),userId,date); }else { - sql = "insert into uf_jcl_kq_cqjg (szjg,ygid,fbid,bm,zw,rq,xm1,cqzt,sjzt,fxrq,formmodeid,modeuuid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + sql = "insert into uf_jcl_kq_cqjg (szjg,ygid,fbid,bm,zw,rq,xm1,cqzt,sjzt,fxrq,formmodeid,modeuuid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,rqlx,sfxx) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; DbTools.update(rs,sql,userList.get(0).get("subcompanyid1"),userId,userList.get(0).get("subcompanyid1"), - userList.get(0).get("departmentid"),userList.get(0).get("jobtitle"),date, SystemItemEnum.NO_SCHEDULING.getKey(),1,1, DateUtil.getCurrentDate(),formmodeid, UUID.randomUUID().toString(),1,0,DateUtil.getCurrentDate(),DateUtil.getCurrentTime().split(" ")[1]); + userList.get(0).get("departmentid"),userList.get(0).get("jobtitle"),date, SystemItemEnum.NO_SCHEDULING.getKey(),cqzt,1, DateUtil.getCurrentDate(),formmodeid, UUID.randomUUID().toString(),1,0,DateUtil.getCurrentDate(),DateUtil.getCurrentTime().split(" ")[1],rqlx,sfxx); } diff --git a/src/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.java b/src/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.java index 3990ea6..5233fd6 100644 --- a/src/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.java +++ b/src/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.java @@ -52,33 +52,33 @@ public class recordDataCmd extends AbstractCommonCommand> { - String dayTYpe =""; - if (DateTypeEnum.WORK_DAY.getKey().equals(rqlx) || DateTypeEnum.CHANGECLASS.getKey().equals(rqlx)){ - //工作日 - dayTYpe = SystemItemEnum.WORK_DAY.getKey(); - }else if (DateTypeEnum.HOLIDAY.getKey().equals(rqlx)){ - //节假日 - dayTYpe = SystemItemEnum.HOLIDAY.getKey(); - }else if (DateTypeEnum.PUBLIC_RESTDAY.getKey().equals(rqlx) || - DateTypeEnum.EXCHANGE_LEAVEDAY.getKey().equals(rqlx)){ - //休息日 - dayTYpe = SystemItemEnum.REST_DAY.getKey(); - } +// String dayTYpe =""; +// if (DateTypeEnum.WORK_DAY.getKey().equals(rqlx) || DateTypeEnum.CHANGECLASS.getKey().equals(rqlx)){ +// //工作日 +// dayTYpe = SystemItemEnum.WORK_DAY.getKey(); +// }else if (DateTypeEnum.HOLIDAY.getKey().equals(rqlx)){ +// //节假日 +// dayTYpe = SystemItemEnum.HOLIDAY.getKey(); +// }else if (DateTypeEnum.PUBLIC_RESTDAY.getKey().equals(rqlx) || +// DateTypeEnum.EXCHANGE_LEAVEDAY.getKey().equals(rqlx)){ +// //休息日 +// dayTYpe = SystemItemEnum.REST_DAY.getKey(); +// } String sql = "select ygid,rq from uf_jcl_kq_cqjg where ygid=? and rq=?"; List> dataList = DbTools.getSqlToList(sql,userId,analysisDate); if (dataList.size() >0){ - sql = "update uf_jcl_kq_cqjg set cqsc="+attendanceDuration+",cqzt="+cqzt+",fxrq='"+DateUtil.getCurrentDate()+"',xm1="+dayTYpe+","; + sql = "update uf_jcl_kq_cqjg set cqsc="+attendanceDuration+",cqzt="+cqzt+",fxrq='"+DateUtil.getCurrentTime()+"',rqlx="+rqlx+","; for (int i =0;i0){ @@ -93,8 +93,8 @@ public class recordDataCmd extends AbstractCommonCommand> { }else { sql = "select subcompanyid1,departmentid,jobtitle from hrmresource where id=?"; List> userList = DbTools.getSqlToList(sql,userId); - sql = "insert into uf_jcl_kq_cqjg (szjg,ygid,fbid,bm,zw,rq,bc,bcbdxx,cqzt,cqsc,sjzt,fxrq,formmodeid,modeuuid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,"; - String cloumns = "xm1,"; + sql = "insert into uf_jcl_kq_cqjg (szjg,ygid,fbid,bm,zw,rq,bc,bcbdxx,cqzt,cqsc,sjzt,fxrq,formmodeid,modeuuid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,rqlx"; + String cloumns = ""; String value = "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"; List insertDatas = Lists.newArrayList(); insertDatas.add(userList.get(0).get("subcompanyid1")); @@ -108,16 +108,16 @@ public class recordDataCmd extends AbstractCommonCommand> { insertDatas.add(cqzt); insertDatas.add(attendanceDuration); insertDatas.add(1); - insertDatas.add(DateUtil.getCurrentDate()); + insertDatas.add(DateUtil.getCurrentTime()); insertDatas.add(formmodeid); insertDatas.add(UUID.randomUUID().toString()); insertDatas.add(1); insertDatas.add(0); insertDatas.add(DateUtil.getCurrentDate()); insertDatas.add(DateUtil.getCurrentTime().split(" ")[1]); - insertDatas.add(dayTYpe); + insertDatas.add(rqlx); for (int i =0;i>> getSchedulingInFormation(Map params); + Map getSchedulingInFormation(Map params); /** * 获得指定天数的打卡时间集合 diff --git a/src/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java b/src/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java index 3db3f37..d29ff48 100644 --- a/src/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java +++ b/src/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java @@ -3,7 +3,6 @@ package com.engine.attendance.attendanceanalysis.service.impl; import com.engine.attendance.attendanceanalysis.cmd.item.*; import com.engine.attendance.attendanceanalysis.service.AbnormalAttendanceService; import com.engine.attendance.enums.*; -import com.engine.common.util.DateUtil; import com.engine.common.util.Utils; import com.engine.core.impl.Service; import com.google.common.collect.Lists; @@ -36,6 +35,8 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt String point = Util.null2String(params.get("point")); //分析日期 String analysisDate = Util.null2String(params.get("analysisDate")); + //班次 + List> scheduleResult = (List>)params.get("scheduleResult"); //人员 String userId = Util.null2String(params.get("userId")); List> resultList = Lists.newArrayList(); @@ -49,7 +50,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt }else { classStartTime=point.split("\\|")[0]; } - int between = DateUtil.getBetWeenMinutes(classStartTime,clockInTime); + int between = Utils.removeRestTime(classStartTime,clockInTime,scheduleResult,analysisDate); Map lateParams = Maps.newHashMap(); lateParams.put("attendanceItems",attendanceItems); @@ -202,6 +203,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt Map clcokInTimeData = (Map)params.get("clcokInTimeData"); //考勤项目 List> attendanceItems = (List>)params.get("attendanceItems"); + List> scheduleResult = (List>)params.get("scheduleResult"); //班段类型 String bdlx = Util.null2String(classInfo.get("bdlx")); //分析日期 @@ -220,7 +222,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt }else { classEndTime=point.split("\\|")[0]; } - int between = DateUtil.getBetWeenMinutes(clockInTime,classEndTime); + int between = Utils.removeRestTime(clockInTime,classEndTime,scheduleResult,analysisDate); Map earlyParams = Maps.newHashMap(); earlyParams.put("attendanceItems",attendanceItems); diff --git a/src/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java b/src/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java index 41461f7..8de9dfb 100644 --- a/src/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java +++ b/src/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java @@ -29,6 +29,10 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic String jssj = Util.null2String(param.get("jssj")); //作用时段 String zysd = Util.null2String(param.get("zysd")); + //分析日期 + String analysisDate = Util.null2String(param.get("analysisDate")); + //排班 + List> scheduleResult = (List>)param.get("scheduleResult"); List> offsetAskForLeaveAnomaly = Lists.newArrayList(); @@ -42,17 +46,16 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic Map leaveMap = Maps.newHashMap(); leaveMap.put("kssj",kssj); leaveMap.put("jssj",jssj); - int betweenTime = DateUtil.getBetWeenMinutes(classStartTime,classEndTime); - int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap); + int betweenTime = Utils.removeRestTime(classStartTime,classEndTime,scheduleResult,analysisDate); + int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap,scheduleResult,analysisDate); if (betweenTime == intersectionTime){ offsetAskForLeaveAnomaly.add(abnormalClockInList.get(i)); }else { String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw")); - int hsl = Integer.valueOf(Util.null2String(abnormalClockInList.get(i).get("hsl"))); + double hsl = Double.valueOf(Util.null2String(abnormalClockInList.get(i).get("hsl"))); double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES); abnormalClockInList.get(i).put("itemduration",itemduration); } - } } abnormalClockInList.removeAll(offsetAskForLeaveAnomaly); diff --git a/src/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.java b/src/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.java index eeccf0e..52cff54 100644 --- a/src/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.java +++ b/src/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.java @@ -28,6 +28,10 @@ public class EvectionServiceImpl extends Service implements EvectionService { String jssj = Util.null2String(param.get("jssj")); //作用时段 String zysd = Util.null2String(param.get("zysd")); + //分析日期 + String analysisDate = Util.null2String(param.get("analysisDate")); + //排班 + List> scheduleResult = (List>)param.get("scheduleResult"); List> offsetEvectionAnomaly = Lists.newArrayList(); for (int i=0;i leaveMap = Maps.newHashMap(); leaveMap.put("kssj",kssj); leaveMap.put("jssj",jssj); - int betweenTime = DateUtil.getBetWeenMinutes(classStartTime,classEndTime); - int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap); + int betweenTime = Utils.removeRestTime(classStartTime,classEndTime,scheduleResult,analysisDate); + int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap,scheduleResult,analysisDate); if (betweenTime == intersectionTime){ offsetEvectionAnomaly.add(abnormalClockInList.get(i)); }else { String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw")); - int hsl = Integer.valueOf(Util.null2String(abnormalClockInList.get(i).get("hsl"))); + double hsl = Double.valueOf(Util.null2String(abnormalClockInList.get(i).get("hsl"))); double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES); abnormalClockInList.get(i).put("itemduration",itemduration); } diff --git a/src/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.java b/src/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.java index ede3001..62f83f1 100644 --- a/src/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.java +++ b/src/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.java @@ -26,48 +26,56 @@ public class UtilServiceImpl extends Service implements UtilService { private SchedulingResultsService schedulingResultsService = ServiceUtil.getService(SchedulingResultsServiceImpl.class); @Override - public Map>> getSchedulingInFormation(Map params) { + public Map getSchedulingInFormation(Map params) { /** 班次信息*/ Map schedulingResultsMap = schedulingResultsService.queryDataTable(params); List> schedulingResultsList = (List>)schedulingResultsMap.get("data"); + Map schedulMap = Maps.newHashMap(); String glpb = ""; if (schedulingResultsList.size() >0){ glpb = Util.null2String(schedulingResultsList.get(0).get("pbgl")); } - schedulingResultsList = schedulingResultsList.stream().filter(e -> !"1".equals(e.get("sfxx"))).collect(Collectors.toList()); + //schedulingResultsList = schedulingResultsList.stream().filter(e -> !"1".equals(e.get("sfxx"))).collect(Collectors.toList()); // Map schedulingMap = schedulingResultsList.stream().collect(Collectors.toMap(e-> Util.null2String(e.get("bcxx")).split("-")[0], e->Util.null2String(e.get("bcrq"))+"&"+Util.null2String(e.get("rqlx")))); Map>> schedulingMap = schedulingResultsList.stream().collect(Collectors.groupingBy(e-> Util.null2String(e.get("bcxx")).split("-")[0])); + Map>> schedulingMapBydate = schedulingResultsList.stream().collect(Collectors.groupingBy(e-> Util.null2String(e.get("bcrq")))); + schedulMap.put("schedulingMapBydate",schedulingMapBydate); + Map>> resultMap = Maps.newHashMap(); String sql = "select a.id bcxx,a.edsc,a.bcsdxx,a.sfdx,a.sfkt,b.bdlx,a.zddxfz,a.dxhs,b.kssj dtkssj,b.jssj dtjssj,b.ksdk,b.jsdk,b.tqdkfzs,b.thdkfzs,b.edxss from uf_jcl_kq_bcxx a left join uf_jcl_kq_bcxx_dt1 b on a.id=b.mainid where a.id in ("; String bcxxIds = ""; for (Map.Entry>> entry :schedulingMap.entrySet()){ - bcxxIds +=entry.getKey() +","; - } - if ("".equals(bcxxIds)){ - return resultMap; + if (!entry.getKey().equals("")){ + bcxxIds +=entry.getKey() +","; + } } - bcxxIds = bcxxIds.substring(0,bcxxIds.length()-1); - sql = sql +bcxxIds+") order by b.kssj"; - List> dataList = DbTools.getSqlToList(sql); - Map>> dataMap = dataList.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("bcxx")))); - - dataMap.entrySet().forEach(e -> { - List> schedulingList = schedulingMap.get(e.getKey()); - List> bcxxs = e.getValue(); - for (Map scheduling :schedulingList){ - String bcrq = Util.null2String(scheduling.get("bcrq")); - String rqlx = Util.null2String(scheduling.get("rqlx")); - List> classs = Lists.newArrayList(); - for (Map map:bcxxs){ - Map newMap = Maps.newHashMap(); - newMap.putAll(map); - newMap.put("rqlx",rqlx); - classs.add(newMap); + List> dataList = Lists.newArrayList(); + if (!"".equals(bcxxIds)){ + bcxxIds = bcxxIds.substring(0,bcxxIds.length()-1); + sql = sql +bcxxIds+") order by b.kssj"; + dataList = DbTools.getSqlToList(sql); + Map>> dataMap = dataList.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("bcxx")))); + + dataMap.entrySet().forEach(e -> { + List> schedulingList = schedulingMap.get(e.getKey()); + List> bcxxs = e.getValue(); + for (Map scheduling :schedulingList){ + String bcrq = Util.null2String(scheduling.get("bcrq")); + String rqlx = Util.null2String(scheduling.get("rqlx")); + String sfxx = Util.null2String(scheduling.get("sfxx")); + List> classs = Lists.newArrayList(); + for (Map map:bcxxs){ + Map newMap = Maps.newHashMap(); + newMap.putAll(map); + newMap.put("rqlx",rqlx); + newMap.put("sfxx",sfxx); + classs.add(newMap); + } + resultMap.put(bcrq,classs); } - resultMap.put(bcrq,classs); - } - }); + }); + } /** 加班计划*/ sql = "select jbry,ksrq,kssj,jsrq,jssj,jbsc from uf_jcl_kq_jbjh_dt1 where jbry=? and ksrq>=? and ksrq<=? and (jbcx=0 or jbcx is null)"; @@ -90,6 +98,7 @@ public class UtilServiceImpl extends Service implements UtilService { resultMap.put(e.getKey(),Lists.newArrayList()); } List> resultList = resultMap.get(e.getKey()); + List> schedulingdateMap = schedulingMapBydate.get(e.getKey()); Map overtimePlan = e.getValue().get(0); @@ -118,10 +127,13 @@ public class UtilServiceImpl extends Service implements UtilService { }).collect(Collectors.toList()); - map.put("bcxx",resultList.get(0) == null ? "0" :resultList.get(0).get("bcxx")); - map.put("bcsdxx",resultList.get(0) == null ? "":resultList.get(0).get("bcsdxx")); + map.put("bcxx",schedulingdateMap.get(0) == null ? "0" :schedulingdateMap.get(0).get("bcxx")); + map.put("bcsdxx",schedulingdateMap.get(0) == null ? "":schedulingdateMap.get(0).get("bcsdxx")); if (dataList.size()>0){ map.put("edsc",Util.null2String(dataList.get(0).get("edsc"))); + map.put("sfdx",Util.null2String(dataList.get(0).get("sfdx"))); + map.put("zddxfz",Util.null2String(dataList.get(0).get("zddxfz"))); + map.put("dxhs",Util.null2String(dataList.get(0).get("dxhs"))); }else { map.put("edsc","0"); } @@ -130,11 +142,11 @@ public class UtilServiceImpl extends Service implements UtilService { map.put("dtjssj",overtimePlan.get("jssj")); map.put("ksdk","0"); map.put("jsdk","0"); + if (schedulingdateMap.size()>0){ + map.put("sfxx",Util.null2String(schedulingdateMap.get(0).get("sfxx"))); + } map.put("tqdkfzs","60"); map.put("thdkfzs","60"); - map.put("sfdx",Util.null2String(dataList.get(0).get("sfdx"))); - map.put("zddxfz",Util.null2String(dataList.get(0).get("zddxfz"))); - map.put("dxhs",Util.null2String(dataList.get(0).get("dxhs"))); map.put("rqlx",dateMap.get(e.getKey())); map.put("edxss",overtimePlan.get("jbsc")); if (attendanceItems.size() >0){ @@ -170,8 +182,9 @@ public class UtilServiceImpl extends Service implements UtilService { } + schedulMap.put("schedulingResultsMap",resultMap); log.info("SchedulingResults : [{}]",resultMap); - return resultMap; + return schedulMap; } @@ -214,7 +227,7 @@ public class UtilServiceImpl extends Service implements UtilService { //开始时间打卡 String key = "j"+inIndex; if (!ClockPointEnum.EMPTY.getKey().equals(timeType) && clcokInTime != null){ - String value = "'"+clcokInTime.get("signdate")+" "+clcokInTime.get("signtime")+"'"; + String value = "'"+clcokInTime.get("signtime")+"'"; resultMap.put(key,value); } inIndex++; @@ -222,7 +235,7 @@ public class UtilServiceImpl extends Service implements UtilService { //结束时间打卡 String key = "c"+outIndex; if (!ClockPointEnum.EMPTY.getKey().equals(timeType) && clcokInTime != null){ - String value = "'"+clcokInTime.get("signdate")+" "+clcokInTime.get("signtime")+"'"; + String value = "'"+clcokInTime.get("signtime")+"'"; resultMap.put(key,value); } outIndex++; diff --git a/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java b/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java index 2df9c09..47ea299 100644 --- a/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java +++ b/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java @@ -68,11 +68,11 @@ public class AttendanceanalysisAction { classesParamMap.put("pageSize",10); classesParamMap.put("recurrence",1); classesParamMap.put("attendanceItems",attendanceItems); - Map>> schedulingResultsMap = utilService.getSchedulingInFormation(classesParamMap); + Map schedulMap = utilService.getSchedulingInFormation(classesParamMap); for (int i=0; i<=betweenDays;i++){ String date = DateUtil.AfterDay(startDate,i); - attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulingResultsMap); + attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap); } } return null; diff --git a/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java b/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java index fe89bee..5b4a3e4 100644 --- a/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java +++ b/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java @@ -62,8 +62,9 @@ public class AttendanceAnalysisWrapper extends Service { classesParamMap.put("pageSize",10); classesParamMap.put("recurrence",1); classesParamMap.put("attendanceItems",attendanceItems); - Map>> schedulingResultsMap = utilService.getSchedulingInFormation(classesParamMap); - + Map schedulMap = utilService.getSchedulingInFormation(classesParamMap); + Map>> schedulingResultsMap = (Map>>)schedulMap.get("schedulingResultsMap"); + Map>> schedulingMapBydate = (Map>>)schedulMap.get("schedulingMapBydate"); /**计算获取前一天和第二天打卡数据*/ Map getClockTimeParam = Maps.newHashMap(); @@ -75,14 +76,14 @@ public class AttendanceAnalysisWrapper extends Service { List> beforeOneDayClockInTimeList = utilService.getClockInTime(getClockTimeParam); log.info("beforeOneDayClockInTimeList : [{}]",beforeOneDayClockInTimeList); //分析前一天考勤 - analysis(userId,beforeOneDayDate,beforeOneDayClockInTimeList,schedulingResultsMap.get(beforeOneDayDate),attendanceItems); + analysis(userId,beforeOneDayDate,beforeOneDayClockInTimeList,schedulingResultsMap.get(beforeOneDayDate),attendanceItems,schedulingMapBydate.get(beforeOneDayDate)); getClockTimeParam.put("date",beforeTwoDayDate); //前第二天打卡数据 List> beforeTwoDayClockInTimeList = utilService.getClockInTime(getClockTimeParam); log.info("beforeTwoDayClockInTimeList : [{}]",beforeTwoDayClockInTimeList); //分析前第二天考勤 - analysis(userId,beforeTwoDayDate,beforeTwoDayClockInTimeList,schedulingResultsMap.get(beforeTwoDayDate),attendanceItems); + analysis(userId,beforeTwoDayDate,beforeTwoDayClockInTimeList,schedulingResultsMap.get(beforeTwoDayDate),attendanceItems,schedulingMapBydate.get(beforeTwoDayDate)); } @@ -94,13 +95,15 @@ public class AttendanceAnalysisWrapper extends Service { * @param dataList 需要包含分析日期以及分析日期前后2天的3天打卡数据 * @param attendanceItems 人员考勤项目 */ - public void attendanceAnalysisForApi(String userId,String analysisDate, List> dataList,List> attendanceItems,Map>> schedulingResultsMap){ + public void attendanceAnalysisForApi(String userId,String analysisDate, List> dataList,List> attendanceItems,Map schedulMap){ log.info("***********analysis userId:{} start***********",userId); log.info("clockInTimeDate : [{}]",dataList); Map>> collect = Maps.newHashMap(); if (dataList != null && dataList.size() >0){ collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate")))); } + Map>> schedulingResultsMap = (Map>>)schedulMap.get("schedulingResultsMap"); + Map>> schedulingMapBydate = (Map>>)schedulMap.get("schedulingMapBydate"); /**计算获取前一天和第二天打卡数据*/ Map getClockTimeParam = Maps.newHashMap(); getClockTimeParam.put("date",analysisDate); @@ -110,7 +113,7 @@ public class AttendanceAnalysisWrapper extends Service { log.info("getClockTimeParam : [{}]",getClockTimeParam); List> clockInTimeList = utilService.getClockInTime(getClockTimeParam); - analysis(userId,analysisDate,clockInTimeList,schedulingResultsMap.get(analysisDate),attendanceItems); + analysis(userId,analysisDate,clockInTimeList,schedulingResultsMap.get(analysisDate),attendanceItems,schedulingMapBydate.get(analysisDate)); } /** @@ -121,7 +124,7 @@ public class AttendanceAnalysisWrapper extends Service { * @param scheduleResult 班次 * @param attendanceItems 考勤项目 */ - public void analysis(String userId,String analysisDate,List> clockInTimeList,List> scheduleResult,List> attendanceItems){ + public void analysis(String userId,String analysisDate,List> clockInTimeList,List> scheduleResult,List> attendanceItems,List> scheduleList){ Map recordParam = Maps.newHashMap(); Map formModeIdMap = Utils.getFormmodeIdMap(); recordParam.put("userId",userId); @@ -139,6 +142,7 @@ public class AttendanceAnalysisWrapper extends Service { params.put("userId",userId); params.put("analysisDate",analysisDate); params.put("modeId",formModeIdMap.get("uf_jcl_kq_cqjg")); + params.put("scheduleList",scheduleList); updateAttendanceResultWrapper.recordNoClass(params); return; } diff --git a/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java b/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java index 58205d5..e5635f7 100644 --- a/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java +++ b/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java @@ -79,6 +79,7 @@ public class UpdateAttendanceResultWrapper extends Service { missCardParams.put("analysisDate",analysisDate); missCardParams.put("userId",userId); missCardParams.put("point",point); + missCardParams.put("scheduleResult",scheduleResult); log.info("missCardParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData); List> iforgetClockIn = forgetClockInService.forgetClockIn(missCardParams); if (iforgetClockIn.size() >0){ @@ -96,6 +97,7 @@ public class UpdateAttendanceResultWrapper extends Service { beLateParams.put("analysisDate",analysisDate); beLateParams.put("userId",userId); beLateParams.put("point",point); + beLateParams.put("scheduleResult",scheduleResult); log.info("beLateParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData); List> ifBeLate = beLateService.beLate(beLateParams); if (ifBeLate.size() > 0){ @@ -112,6 +114,7 @@ public class UpdateAttendanceResultWrapper extends Service { leaveEarlyParams.put("analysisDate",analysisDate); leaveEarlyParams.put("userId",userId); leaveEarlyParams.put("point",point); + leaveEarlyParams.put("scheduleResult",scheduleResult); log.info("leaveEarlyParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData); List> ifLeaveEarly = beLateService.leaveEarly(leaveEarlyParams); if (ifLeaveEarly.size() > 0){ @@ -187,6 +190,8 @@ public class UpdateAttendanceResultWrapper extends Service { Map param = Maps.newHashMap(); param.put("abnormalClockInList",abnormalClockInList); param.put("zysd",zysd); + param.put("scheduleResult",scheduleResult); + param.put("analysisDate",analysisDate); double itemduration = 0; if ("".equals(Util.null2String(askForLeaveList.get(i).get("kssj"))) || "".equals(Util.null2String(askForLeaveList.get(i).get("jssj")))){ //弹性请假,半天请假 @@ -377,6 +382,7 @@ public class UpdateAttendanceResultWrapper extends Service { normalParams.put("userId",userId); normalParams.put("date",analysisDate); normalParams.put("modeId",params.get("modeId")); + normalParams.put("scheduleList",params.get("scheduleList")); log.info("userId : {} ,analysisDate: {} have no class",userId,analysisDate); commandExecutor.execute(new UpdateAttendanceResultsCmd(normalParams)); diff --git a/src/com/engine/common/util/Utils.java b/src/com/engine/common/util/Utils.java index 773fea6..a78a5a5 100644 --- a/src/com/engine/common/util/Utils.java +++ b/src/com/engine/common/util/Utils.java @@ -438,25 +438,25 @@ public class Utils { * map中的开始时间和结束时间,在kssj和jssj中占据的分钟数 * @return */ - public static int getIntersectionTime(String kssj,String jssj,Map map){ + public static int getIntersectionTime(String kssj,String jssj,Map map,List> scheduleResult,String analysisDate){ String leavekssj = map.get("kssj").toString(); String leavejssj = map.get("jssj").toString(); int betweenMinutes=0; if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) >=0){ //时间在中间 - betweenMinutes = DateUtil.getBetWeenMinutes(leavekssj,leavejssj); + betweenMinutes = removeRestTime(leavekssj,leavejssj,scheduleResult,analysisDate); log.info("时间在中间,被包含"); }else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavekssj)) >=0){ //时间 右边 - betweenMinutes = DateUtil.getBetWeenMinutes(leavekssj,jssj); + betweenMinutes = removeRestTime(leavekssj,jssj,scheduleResult,analysisDate); log.info("时间 右边"); }else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) >=0 && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavejssj)) <=0){ //时间 左边 - betweenMinutes = DateUtil.getBetWeenMinutes(kssj,leavejssj); + betweenMinutes = removeRestTime(kssj,leavejssj,scheduleResult,analysisDate); log.info("时间 左边"); }else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) <=0){ //请假外出时间中间 - betweenMinutes = DateUtil.getBetWeenMinutes(kssj,jssj); + betweenMinutes = removeRestTime(kssj,jssj,scheduleResult,analysisDate); log.info("时间在中间,包含"); } return betweenMinutes; diff --git a/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.class b/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.class index d225959..a411e4a 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.class and b/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.class b/target/classes/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.class index 0fe9fbd..395419e 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.class and b/target/classes/com/engine/attendance/attendanceanalysis/cmd/UpdateAttendanceResultsCmd.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.class b/target/classes/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.class index d4be6c9..f3f1efc 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.class and b/target/classes/com/engine/attendance/attendanceanalysis/cmd/recordDataCmd.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/service/UtilService.class b/target/classes/com/engine/attendance/attendanceanalysis/service/UtilService.class index 5d6bdd6..c5d8862 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/service/UtilService.class and b/target/classes/com/engine/attendance/attendanceanalysis/service/UtilService.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.class b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.class index 308ec40..d684d1b 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.class and b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.class b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.class index 6b6ab9a..ed975a8 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.class and b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.class b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.class index b8588de..7357349 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.class and b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.class b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.class index 83a41d7..48aa8b5 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.class and b/target/classes/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.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 d32462a..6f0565e 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/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$1.class b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$1.class index 193c603..54c3803 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$1.class and b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$1.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$2.class b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$2.class index 8f942b1..7d25740 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$2.class and b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper$2.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class index 63de041..789fd89 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class and b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class index ff7ad01..2379b6a 100644 Binary files a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class and b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class differ diff --git a/target/classes/com/engine/common/util/Utils.class b/target/classes/com/engine/common/util/Utils.class index 0cf5ba8..d919fb3 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/test-classes/Test2$1.class b/target/test-classes/Test2$1.class new file mode 100644 index 0000000..becaf63 Binary files /dev/null and b/target/test-classes/Test2$1.class differ diff --git a/target/test-classes/Test2$2.class b/target/test-classes/Test2$2.class new file mode 100644 index 0000000..76f89e3 Binary files /dev/null and b/target/test-classes/Test2$2.class differ diff --git a/target/test-classes/Test2$3.class b/target/test-classes/Test2$3.class new file mode 100644 index 0000000..ffa10e1 Binary files /dev/null and b/target/test-classes/Test2$3.class differ diff --git a/target/test-classes/Test2.class b/target/test-classes/Test2.class new file mode 100644 index 0000000..3b7bb59 Binary files /dev/null and b/target/test-classes/Test2.class differ diff --git a/target/test-classes/TestGetClockInPoint$1.class b/target/test-classes/TestGetClockInPoint$1.class index cc03414..abf972a 100644 Binary files a/target/test-classes/TestGetClockInPoint$1.class and b/target/test-classes/TestGetClockInPoint$1.class differ diff --git a/target/test-classes/TestGetClockInPoint$10.class b/target/test-classes/TestGetClockInPoint$10.class new file mode 100644 index 0000000..7256e59 Binary files /dev/null and b/target/test-classes/TestGetClockInPoint$10.class differ diff --git a/target/test-classes/TestGetClockInPoint$2.class b/target/test-classes/TestGetClockInPoint$2.class index b1294e2..8559bf7 100644 Binary files a/target/test-classes/TestGetClockInPoint$2.class and b/target/test-classes/TestGetClockInPoint$2.class differ diff --git a/target/test-classes/TestGetClockInPoint$3.class b/target/test-classes/TestGetClockInPoint$3.class index 8b26e22..0db750d 100644 Binary files a/target/test-classes/TestGetClockInPoint$3.class and b/target/test-classes/TestGetClockInPoint$3.class differ diff --git a/target/test-classes/TestGetClockInPoint$4.class b/target/test-classes/TestGetClockInPoint$4.class index 92de0de..ff5859f 100644 Binary files a/target/test-classes/TestGetClockInPoint$4.class and b/target/test-classes/TestGetClockInPoint$4.class differ diff --git a/target/test-classes/TestGetClockInPoint$5.class b/target/test-classes/TestGetClockInPoint$5.class index f74513a..297a28e 100644 Binary files a/target/test-classes/TestGetClockInPoint$5.class and b/target/test-classes/TestGetClockInPoint$5.class differ diff --git a/target/test-classes/TestGetClockInPoint$6.class b/target/test-classes/TestGetClockInPoint$6.class index ad25c56..9b6688f 100644 Binary files a/target/test-classes/TestGetClockInPoint$6.class and b/target/test-classes/TestGetClockInPoint$6.class differ diff --git a/target/test-classes/TestGetClockInPoint$7.class b/target/test-classes/TestGetClockInPoint$7.class index 38266ba..84faa44 100644 Binary files a/target/test-classes/TestGetClockInPoint$7.class and b/target/test-classes/TestGetClockInPoint$7.class differ diff --git a/target/test-classes/TestGetClockInPoint$8.class b/target/test-classes/TestGetClockInPoint$8.class index 642da89..e1399ce 100644 Binary files a/target/test-classes/TestGetClockInPoint$8.class and b/target/test-classes/TestGetClockInPoint$8.class differ diff --git a/target/test-classes/TestGetClockInPoint$9.class b/target/test-classes/TestGetClockInPoint$9.class new file mode 100644 index 0000000..0cdcf6a Binary files /dev/null and b/target/test-classes/TestGetClockInPoint$9.class differ diff --git a/target/test-classes/TestGetClockInPoint.class b/target/test-classes/TestGetClockInPoint.class index 234edb1..a185a81 100644 Binary files a/target/test-classes/TestGetClockInPoint.class and b/target/test-classes/TestGetClockInPoint.class differ diff --git a/target/test-classes/TestRemoveRestTime$1.class b/target/test-classes/TestRemoveRestTime$1.class new file mode 100644 index 0000000..497aca8 Binary files /dev/null and b/target/test-classes/TestRemoveRestTime$1.class differ diff --git a/target/test-classes/TestRemoveRestTime$2.class b/target/test-classes/TestRemoveRestTime$2.class new file mode 100644 index 0000000..3473ab0 Binary files /dev/null and b/target/test-classes/TestRemoveRestTime$2.class differ diff --git a/target/test-classes/TestRemoveRestTime$3.class b/target/test-classes/TestRemoveRestTime$3.class new file mode 100644 index 0000000..6dde3c2 Binary files /dev/null and b/target/test-classes/TestRemoveRestTime$3.class differ diff --git a/target/test-classes/TestRemoveRestTime.class b/target/test-classes/TestRemoveRestTime.class new file mode 100644 index 0000000..a6065b0 Binary files /dev/null and b/target/test-classes/TestRemoveRestTime.class differ diff --git a/test/Test2.java b/test/Test2.java new file mode 100644 index 0000000..13f4bb1 --- /dev/null +++ b/test/Test2.java @@ -0,0 +1,72 @@ +import com.google.common.collect.Lists; +import weaver.general.Util; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class Test2 { + public static void main(String[] args) { + List> schedulingList = Lists.newArrayList(); + schedulingList.add(new HashMap(){{ + put("edsc","9.50"); + put("bdlx","0"); + put("jsdk","1"); + put("tqdkfzs","120"); + put("sfkt","1"); + put("dtjssj","13:00"); + put("zddxfz","30"); + put("bcxx","25"); + put("dxhs","5"); + put("bcsdxx","09:00-13:00|13:00-18:30"); + put("sfdx","1"); + put("dtkssj","09:00"); + put("thdkfzs","120"); + put("ksdk","1"); + put("bcxx","11-办公室白班"); + }}); + schedulingList.add(new HashMap(){{ + put("edsc","9.50"); + put("bdlx","0"); + put("jsdk","1"); + put("tqdkfzs","120"); + put("sfkt","1"); + put("dtjssj","13:00"); + put("zddxfz","30"); + put("bcxx","25"); + put("dxhs","5"); + put("bcsdxx","09:00-13:00|13:00-18:30"); + put("sfdx","1"); + put("dtkssj","09:00"); + put("thdkfzs","120"); + put("ksdk","1"); + put("bcxx",""); + }}); + schedulingList.add(new HashMap(){{ + put("edsc","9.50"); + put("bdlx","0"); + put("jsdk","1"); + put("tqdkfzs","120"); + put("sfkt","1"); + put("dtjssj","13:00"); + put("zddxfz","30"); + put("bcxx","25"); + put("dxhs","5"); + put("bcsdxx","09:00-13:00|13:00-18:30"); + put("sfdx","1"); + put("dtkssj","09:00"); + put("thdkfzs","120"); + put("ksdk","1"); + put("bcxx",""); + }}); + Map>> schedulingMap = schedulingList.stream().collect(Collectors.groupingBy(e-> Util.null2String(e.get("bcxx")).split("-")[0])); + String bcxxIds = ""; + for (Map.Entry>> entry :schedulingMap.entrySet()){ + if (!entry.getKey().equals("")){ + bcxxIds +=entry.getKey() +","; + } + } + System.out.println(bcxxIds); + } +} diff --git a/test/TestGetClockInPoint.java b/test/TestGetClockInPoint.java index d175c3e..d324037 100644 --- a/test/TestGetClockInPoint.java +++ b/test/TestGetClockInPoint.java @@ -1,3 +1,4 @@ +import com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd; import com.engine.attendance.attendanceanalysis.service.UtilService; import com.engine.attendance.attendanceanalysis.service.impl.UtilServiceImpl; import com.engine.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper; @@ -12,6 +13,8 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import weaver.general.Util; +import java.time.ZoneOffset; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -25,7 +28,7 @@ public class TestGetClockInPoint { put("edsc","9.50"); put("bdlx","0"); put("jsdk","1"); - put("tqdkfzs","60"); + put("tqdkfzs","120"); put("sfkt","1"); put("dtjssj","13:00"); put("zddxfz","30"); @@ -34,7 +37,7 @@ public class TestGetClockInPoint { put("bcsdxx","09:00-13:00|13:00-18:30"); put("sfdx","1"); put("dtkssj","09:00"); - put("thdkfzs","60"); + put("thdkfzs","120"); put("ksdk","1"); put("rqlx","11"); }}); @@ -42,7 +45,7 @@ public class TestGetClockInPoint { put("edsc","9.50"); put("bdlx","0"); put("jsdk","1"); - put("tqdkfzs","60"); + put("tqdkfzs","120"); put("sfkt","1"); put("dtjssj","18:00"); put("zddxfz","30"); @@ -51,11 +54,12 @@ public class TestGetClockInPoint { put("bcsdxx","09:00-13:00|13:00-18:30"); put("sfdx","1"); put("dtkssj","13:00"); - put("thdkfzs","60"); + put("thdkfzs","120"); put("ksdk","0"); put("rqlx","11"); }}); + List> dataList = Lists.newArrayList(); dataList.add(new HashMap(){{ put("signtime","09:11:00"); @@ -87,13 +91,43 @@ public class TestGetClockInPoint { put("userid","53"); put("signdate","2023-11-12"); }}); + dataList.add(new HashMap(){{ + put("signtime","16:30:00"); + put("id","48"); + put("userid","53"); + put("signdate","2023-11-12"); + }}); dataList.add(new HashMap(){{ put("signtime","18:35:00"); put("id","48"); put("userid","53"); put("signdate","2023-11-12"); }}); - List>> collect = getClockInPoint("2023-11-12",schedulingList,dataList); + Map param = Maps.newHashMap(); + List> askForLeaveAndEvctionSchedule = Lists.newArrayList(); + askForLeaveAndEvctionSchedule.add(new HashMap(){{ + put("edsc","9.50"); + put("bdlx",ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey()); + put("jsdk","0"); + put("tqdkfzs","60"); + put("sfkt","1"); + put("dtjssj","17:00"); + put("zddxfz","30"); + put("bcxx","25"); + put("dxhs","5"); + put("bcsdxx","09:00-13:00|13:00-18:30"); + put("sfdx","1"); + put("dtkssj","08:30"); + put("thdkfzs","60"); + put("ksdk","0"); + put("rqlx","11"); + }}); + param.put("analysisDate","2023-11-12"); + param.put("scheduleResult",schedulingList); + param.put("clockInTimeList",dataList); + param.put("askForLeaveAndEvctionSchedule",askForLeaveAndEvctionSchedule); + // List>> collect = getClockInPoint("2023-11-12",schedulingList,dataList); + List>> collect = (List>>)new GetClockInPointCmd(param).execute(null).get("clcokInTimeData"); System.out.println(collect); // Map clock = getNeedRecordClockInTime(collect); // System.out.println(clock); @@ -162,6 +196,15 @@ public class TestGetClockInPoint { clcokInTimeData.add(clcokInTimeMap); } } + clcokInTimeData = clcokInTimeData.stream().sorted(Comparator.comparing(e->{ + //卡点 + String point = ""; + //当天打卡数据 + for (Map.Entry> entry :e.entrySet()){ + point = entry.getKey(); + } + return DateUtil.getTime(point.split("\\|")[0]).toInstant(ZoneOffset.of("+8")).toEpochMilli(); + })).collect(Collectors.toList()); //当弹性上下班时 if (needClockInSchedule.size() > 0){ //是否弹性 diff --git a/test/TestRemoveRestTime.java b/test/TestRemoveRestTime.java new file mode 100644 index 0000000..746e997 --- /dev/null +++ b/test/TestRemoveRestTime.java @@ -0,0 +1,67 @@ +import com.engine.common.util.Utils; +import com.google.common.collect.Lists; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TestRemoveRestTime { + public static void main(String[] args) { + List> schedulingList = Lists.newArrayList(); + schedulingList.add(new HashMap(){{ + put("edsc","8"); + put("bdlx","0"); + put("jsdk","0"); + put("tqdkfzs","60"); + put("sfkt","0"); + put("dtjssj","12:00"); + put("zddxfz","30"); + put("bcxx","25"); + put("dxhs","5"); + put("bcsdxx","09:00-12:00|13:00-18:00"); + put("sfdx","0"); + put("dtkssj","09:00"); + put("thdkfzs",""); + put("ksdk","1"); + put("rqlx","11"); + }}); + schedulingList.add(new HashMap(){{ + put("edsc","9.50"); + put("bdlx","1"); + put("jsdk","1"); + put("tqdkfzs","120"); + put("sfkt","0"); + put("dtjssj","13: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","12:00"); + put("thdkfzs","120"); + put("ksdk","0"); + put("rqlx","11"); + }}); + schedulingList.add(new HashMap(){{ + put("edsc","8"); + put("bdlx","0"); + put("jsdk","1"); + put("tqdkfzs","300"); + put("sfkt","1"); + put("dtjssj","18: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","13:00"); + put("thdkfzs",""); + put("ksdk","0"); + put("rqlx","11"); + }}); + + int between = Utils.removeRestTime("2023-12-06 09:00","2023-12-06 12:52:00",schedulingList,"2023-12-06"); + + System.out.println(between); + } +}