完善请假逻辑

zm_dev
liuliang 9 months ago
parent ec4816196f
commit 54f49b6569

@ -1 +1 @@
аyГ~цЭ|дй~Й~хд|И}фЛ~ш}Т~М|юй~с}С}юЯ}У}Ь~к~Х}Н~г}ЭЖ|б}О}ЪрqчhаjЖkЛjВhТjгiлjфkзiУhЭlЩkуoжpжxЯuЭtЧvВvтwЛvа{иxяyТxЙvЮxЦvБyиxрzпwЧvзxаЫЧшСжМЧСъмЖСЪзнНШзЭдДоЩЪДвкдЩРыщчАяПЬэяЮчцПГЗУЪлощбЭхдЪтзЖТНБУщПсЩлэррЦькмИпЙПРжпАлиШФмюмШдшжиИЖъВнлОЙНиwбsСsЪvцsЕwаtПsщyАlГtДoфsшqлlЬqЦpЗrКlыsЖsвuрsХmхoьqЛrщlйjНZК\т^Й\ФZоVфZХXШ\РVИhбwчxкzБyп{Шzб|ш{оxОxЙ|фzд|яwи{ЗvБyК|ЦVеZюUаYфSТYхXе\цXэaцcвeщ_ЮWхWц^бTмRюTЫTПZсWж[ъTЕ]ы[ЪWТRДWгVоZГZЧUЮYСQсXЮWБYЦ[кZшgО~В~ыzю~л{РzвyК{Бxи~ц|М{ъ~тж|Ф}к~н}ычaчdВ]вhп]вaь^ГaК`гaй^ж_Ш]С]И]в^Т^в^и]Т]Х`ЯkКgшgюgЩgюhШcТ]жWЬkшiцqжhЧoяLбLшLюMБMГMКMКMНMсNХMКMНMГMХMЙMНMФMХMЯKДKЕKЙKюKаJцJЪJЕKЦKБKоLшKФKГKГKЕKИKЕKЕKИJюJФJсKЕKИKФKЕKФKДKГKГKпLДKЕKшKжJаJХJДKЕKХKЦKоLЦKДKЦKИKГKФKЕKюKдJЧIсKБKЦKХKГKЕKДKГKЕKГKрLФKГKКJЪIсJтKЕKФKГKДKоLФKФKФKДKЙKДKвKшJюJФJЧKДKДKДKДK
<EFBFBD><EFBFBD>Y<EFBFBD>Y<EFBFBD>Y<EFBFBD>r<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD>~<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>I

@ -10,85 +10,95 @@
</component>
<component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.s" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.s" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat_i" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat_i" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/WEB-INF/sqllog/ecologysql" beforeDir="false" afterPath="$PROJECT_DIR$/WEB-INF/sqllog/ecologysql" afterDir="false" />
<change beforePath="$PROJECT_DIR$/log/sdk.log" beforeDir="false" afterPath="$PROJECT_DIR$/log/sdk.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/log/sdk.log" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/artifacts/hrm_attendance/hrm-attendance.jar" beforeDir="false" afterPath="$PROJECT_DIR$/out/artifacts/hrm_attendance/hrm-attendance.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/ComputeAttendanceDurationCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/ComputeAttendanceDurationCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/MergeApairClockPoint.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/MergeApairClockPoint.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/dto/clockpoint/ClockPointDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/dto/clockpoint/ClockPointDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/AskForLeaveService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/AskForLeaveService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AllowanceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AllowanceServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetWorkHoursItemByPersonCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetWorkHoursItemByPersonCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/enums/PersonGroupListTypeEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/enums/PersonGroupListTypeEnum.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/common/cmd/GetPersonDateBySuitOrganzation.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/common/cmd/GetPersonDateBySuitOrganzation.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/common/util/CommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/common/util/CommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/common/util/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/common/util/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/ComputeAttendanceDurationCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/ComputeAttendanceDurationCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetClockInTimeListCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetClockInTimeListCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/AdjustByWorkOverTimeCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/AdjustByWorkOverTimeCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/MergeApairClockPoint.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/getclockInpoint/MergeApairClockPoint.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/AbsenteeismItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/AbsenteeismItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/BeAwayItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/BeAwayItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/BeLateItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/BeLateItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/ForGetClockItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/ForGetClockItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/LeaveEarlyItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/LeaveEarlyItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/VacationItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/VacationItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/WorkOvertimeItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/item/WorkOvertimeItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/dto/clockpoint/ClockPointDTO$ClockPointDTOBuilder.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/dto/clockpoint/ClockPointDTO$ClockPointDTOBuilder.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/dto/clockpoint/ClockPointDTO.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/dto/clockpoint/ClockPointDTO.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/AskForLeaveService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/AskForLeaveService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AllowanceServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AllowanceServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/EvectionServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/UtilServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/UtilServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/cmd/GenerateScheduleCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/cmd/GenerateScheduleCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetWorkHoursItemByPersonCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/attendanceplan/cmd/GetWorkHoursItemByPersonCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$3.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$4.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$4.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$5.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$5.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$6.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$6.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$7.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$7.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/SchedulingJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/SchedulingJob.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/workflow/service/impl/AllowanceServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/workflow/service/impl/AllowanceServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/enums/PersonGroupListTypeEnum.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/enums/PersonGroupListTypeEnum.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/workflow/action/askforleave/BatchAskForLeaveWorkFlowSubmitAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/workflow/action/askforleave/BatchAskForLeaveWorkFlowSubmitAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/cmd/GetPersonDateBySuitOrganzation.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/cmd/GetPersonDateBySuitOrganzation.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/CommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/CommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/DbTools.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/DbTools.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils$3.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/jucailinkq/common/util/Utils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$10.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$10.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$11.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$11.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$12.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$12.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$13.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$13.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$14.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$14.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$15.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$15.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$16.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$16.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$3.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$4.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$4.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$5.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$5.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$6.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$6.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$7.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$7.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$8.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$8.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test$9.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test$9.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Test.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Test.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestAttendanceAllowance/Test.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestAttendanceAllowance/Test.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestObj.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/test/TestRunnable.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/test/TestRunnable.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/vocation/Test1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/vocation/Test1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/Test.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestAttendanceAllowance/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestAttendanceAllowance/Test.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestObj.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/LogAnalyzerService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/test/TestRunnable.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/test/TestRunnable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/vocation/Test1.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/vocation/Test1.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -166,6 +176,14 @@
</option>
</component>
<component name="RunManager" selected="JUnit.Test.testAnalysis">
<configuration name="LogAnalyzerService" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="LogAnalyzerService" />
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Test" />
<module name="hrm-attendance" />
@ -188,23 +206,6 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1.test1" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="vocation.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="vocation" />
<option name="MAIN_CLASS_NAME" value="vocation.Test1" />
<option name="METHOD_NAME" value="test1" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1.test3" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
@ -239,7 +240,7 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test.testjob" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<configuration name="Test.testRealse4" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
@ -250,7 +251,7 @@
</extension>
<option name="PACKAGE_NAME" value="TestAttendanceAllowance" />
<option name="MAIN_CLASS_NAME" value="TestAttendanceAllowance.Test" />
<option name="METHOD_NAME" value="testjob" />
<option name="METHOD_NAME" value="testRealse4" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
@ -266,10 +267,10 @@
<recent_temporary>
<list>
<item itemvalue="JUnit.Test.testAnalysis" />
<item itemvalue="Application.Test" />
<item itemvalue="JUnit.Test1.test1" />
<item itemvalue="Application.LogAnalyzerService" />
<item itemvalue="JUnit.Test.testRealse4" />
<item itemvalue="JUnit.Test1.test3" />
<item itemvalue="JUnit.Test.testjob" />
<item itemvalue="Application.Test" />
</list>
</recent_temporary>
</component>
@ -805,7 +806,18 @@
<workItem from="1720938148886" duration="18384000" />
<workItem from="1720958284858" duration="25000" />
<workItem from="1720958325355" duration="6047000" />
<workItem from="1721006102395" duration="16688000" />
<workItem from="1721006102395" duration="21122000" />
<workItem from="1721092928796" duration="1999000" />
<workItem from="1721107555759" duration="45998000" />
<workItem from="1721213368921" duration="4390000" />
<workItem from="1721267109787" duration="7676000" />
<workItem from="1721280028835" duration="17258000" />
<workItem from="1721304609547" duration="8215000" />
<workItem from="1721353237704" duration="4043000" />
<workItem from="1721368956264" duration="12110000" />
<workItem from="1721544596442" duration="1180000" />
<workItem from="1721610705217" duration="9332000" />
<workItem from="1721625873942" duration="1817000" />
</task>
<servers />
</component>
@ -854,11 +866,6 @@
<line>221</line>
<option name="timeStamp" value="108" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/component/persongroup/cmd/DeleteBatchScheduleCmd.java</url>
<line>28</line>
<option name="timeStamp" value="186" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java</url>
<line>582</line>
@ -875,9 +882,14 @@
<option name="timeStamp" value="254" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java</url>
<line>47</line>
<option name="timeStamp" value="256" />
<url>file://$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java</url>
<line>327</line>
<option name="timeStamp" value="279" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/AskForLeaveServiceImpl.java</url>
<line>27</line>
<option name="timeStamp" value="283" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
@ -898,7 +910,7 @@
<SUITE FILE_PATH="coverage/hrm_attendance$TestgetDepartSchedule_test2.ic" NAME="TestgetDepartSchedule.test2 Coverage Results" MODIFIED="1718071420719" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<FILTER>calendarscheduling.*</FILTER>
</SUITE>
<SUITE FILE_PATH="coverage/hrm_attendance$Test_testAnalysis.ic" NAME="Test.testAnalysis Coverage Results" MODIFIED="1720580820899" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<SUITE FILE_PATH="coverage/hrm_attendance$Test_testAnalysis.ic" NAME="Test.testAnalysis Coverage Results" MODIFIED="1721375175460" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<FILTER>TestAttendanceAllowance.*</FILTER>
</SUITE>
<SUITE FILE_PATH="coverage/hrm_attendance$Test_testjob.ic" NAME="Test.testjob Coverage Results" MODIFIED="1720164636425" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">

@ -4999,3 +4999,701 @@
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:00:35.656","loginID=null main-1","23""1-1309129055","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:00:35',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=126,sc2=3.00,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1=NULL,j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:00:37.195","loginID=null main-1","15""1-1309129055","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:07:31.463","loginID=null main-1","36""1-374646930","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:07:31',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=126,sc2=3.00,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1=NULL,j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:07:32.971","loginID=null main-1","15""1-374646930","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:08:58.810","loginID=null main-1","37""1-530410619","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:08:58',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=126,sc2=3.00,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1=NULL,j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:09:00.371","loginID=null main-1","13""1-530410619","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:22:30.820","loginID=null main-1","26""1-2072724423","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:22:30',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=2.5,xm2=126,sc2=3.00,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1=NULL,j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:22:32.252","loginID=null main-1","14""1-2072724423","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:33:56.387","loginID=null main-1","25""1-502838712","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:33:56',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=126,sc2=3.00,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1=NULL,j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:33:57.795","loginID=null main-1","15""1-502838712","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:35:22.983","loginID=null main-1","27""1-1365711624","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:35:22',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=122,sc2=10.0,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1='2024-07-18 08:40',j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:35:24.436","loginID=null main-1","14""1-1365711624","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:40:32.429","loginID=null main-1","26""1-774362927","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 21:40:32',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=122,sc2=10.0,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1='2024-07-18 08:40',j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","21:40:33.938","loginID=null main-1","15""1-774362927","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","22:09:58.088","loginID=null main-1","32""1-1099717276","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 22:09:58',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=138,sc1=5.0,xm2=122,sc2=10.0,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1='2024-07-18 08:40',j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","22:09:59.649","loginID=null main-1","11""1-1099717276","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","22:13:06.696","loginID=null main-1","27""1-376635015","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-18 22:13:06',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=122,sc1=10.0,xm2=126,sc2=2.50,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1='2024-07-18 08:40',j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-18","22:13:08.054","loginID=null main-1","16""1-376635015","null","null","delete","delete from uf_jcl_kq_cqjt where rq >= '2024-07-18' and rq <= '2024-07-18' and yg in (81) and bc in (2,1,7,3,8),[]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:119)
at com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl.addAllowanceRecords(AllowanceServiceImpl.java:160)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:192)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"
"2024-07-19","16:51:09.827","loginID=null main-1","18""1-2144334265","null","null","update","update uf_jcl_kq_cqjg set cqsc=0.0,cqzt=1,fxrq='2024-07-19 16:51:09',rqlx=0,sfxx=0,bc=11,bcbdxx='08:30-11:30|14:30-18:00|',xm1=126,sc1=2.50,xm2=NULL,sc2=NULL,xm3=NULL,sc3=NULL,xm4=NULL,sc4=NULL,xm5=NULL,sc5=NULL,xm6=NULL,sc6=NULL,xm7=NULL,sc7=NULL,xm8=NULL,sc8=NULL,j1='2024-07-18 08:40',j2=NULL,j3=NULL,j4=NULL,j5=NULL,j6=NULL,j7=NULL,c1=NULL,j8=NULL,c2=NULL,c3=NULL,c4=NULL,c5=NULL,c6=NULL,c7=NULL,c8=NULL where ygid=? and rq=?,[81, 2024-07-18]",")
at weaver.conn.RecordSet.executeSql(RecordSet.java:1372)
at weaver.conn.RecordSet.executeUpdate(RecordSet.java:988)
at com.engine.jucailinkq.common.util.DbTools.update(DbTools.java:122)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:115)
at com.engine.jucailinkq.attendance.attendanceanalysis.cmd.RecordDataCmd.execute(RecordDataCmd.java:30)
at com.engine.core.interceptor.CommandInvoker.execute(CommandInvoker.java:38)
at com.engine.core.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at com.engine.core.interceptor.LogInterceptor.execute(LogInterceptor.java:19)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:37)
at com.engine.core.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:42)
at com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl.recordItem(UtilServiceImpl.java:60)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.analysis(AttendanceAnalysisWrapper.java:367)
at com.engine.jucailinkq.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper.attendanceAnalysisForApi(AttendanceAnalysisWrapper.java:138)
at com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction.getSchedulingData(AttendanceanalysisAction.java:188)
at TestAttendanceAllowance.Test.testAnalysis(Test.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
"

125008
log/sdk.log

File diff suppressed because one or more lines are too long

@ -15,6 +15,7 @@ import weaver.general.Util;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -44,10 +45,10 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
List<Map<String,Object>> evectionList = (List<Map<String,Object>>)params.get("evectionList");
//外出项目
Map<String,Map<String,Object>> evectionItems = (Map<String,Map<String,Object>>)params.get("evectionItems");
//请假后消除的异常
List<Map<String,Object>> offsetAskForLeaveAnomaly = (List<Map<String,Object>>)params.get("offsetAskForLeaveAnomaly");
//出差外出后消除的异常
List<Map<String,Object>> offsetEvectionAnomaly = (List<Map<String,Object>>)params.get("offsetEvectionAnomaly");
//请假-抵消异常
Map<Map<String, Object>,List<Map<String, Object>>> askForLeaveToOffsetAbnomaly = (Map<Map<String, Object>,List<Map<String, Object>>>)params.get("askForLeaveToOffsetAbnomaly");
//出差-抵消异常
Map<Map<String, Object>,List<Map<String, Object>>> evectionToOffsetAbnomaly = (Map<Map<String, Object>,List<Map<String, Object>>>)params.get("evectionToOffsetAbnomaly");
//分析日期
String analysisDate = Util.null2String(params.get("analysisDate"));
//考勤项目
@ -73,9 +74,8 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
for (Map<String, Object> scheduleMap :scheduleResult){
if (ClassSegmentTypeEnum.WORK_TIME.getKey().equals(scheduleMap.get("bdlx"))){
String dtkssj = Utils.getkssjTime(scheduleMap,analysisDate);
String dtjssj = Utils.getjssjTime(scheduleMap,analysisDate);
List<Map<String,Object>> list = abnormalClockInList.stream().filter(e->DateUtil.getTime(dtkssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) <=0 && DateUtil.getTime(dtjssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) >=0).collect(Collectors.toList());
int edfzs = Integer.valueOf(scheduleMap.get("edfzs").toString());
List<Map<String,Object>> list = Utils.getAbnormalListBySchedule(scheduleMap,abnormalClockInList,analysisDate);
double totalTime=0;
for (Map<String,Object> abnormal:list){
AttendanceItemTypeEnum itemType = (AttendanceItemTypeEnum)abnormal.get("itemType");
@ -89,6 +89,9 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
break;
}else {
int betweenMinutes = Integer.valueOf(Util.null2String(abnormal.get("betweenMinutes")==null?"0":abnormal.get("betweenMinutes")));
if (betweenMinutes > edfzs){
betweenMinutes = edfzs;
}
String item = Util.null2String(abnormal.get("item"));
List<Map<String,Object>> abnormalItemList = attendanceItems.stream().filter(e->e.get("key").equals(item)).collect(Collectors.toList());
if (abnormalItemList.size() > 0){
@ -100,7 +103,7 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
betweenMinutes = qbkcsc;
}else {
int deductionDuration = betweenMinutes-qbkcsc;
betweenMinutes = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
betweenMinutes = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()))).intValue()+qbkcsc;
}
totalTime+=betweenMinutes;
}
@ -112,12 +115,12 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
/**
*
*/
double askForLeaveTime = removeAskForLeave(analysisDate,scheduleResult,askForLeaveList,askForLeaveItems,offsetAskForLeaveAnomaly,abnormalClockInList);
double askForLeaveTime = removeAskForLeave(analysisDate,scheduleResult,askForLeaveList,askForLeaveItems,abnormalClockInList,askForLeaveToOffsetAbnomaly);
/**
*
*/
double evectionTimeTime = removeEvection(analysisDate,scheduleResult,evectionList,evectionItems,offsetEvectionAnomaly,abnormalClockInList);
double evectionTimeTime = removeEvection(analysisDate,scheduleResult,evectionList,evectionItems,abnormalClockInList,evectionToOffsetAbnomaly);
log.info("misscardHour : {},abnormalMinute : {}, : {},evectionTimeTime:{}",misscardHour,abnormalMinute,askForLeaveTime,evectionTimeTime);
double deductTime = Double.valueOf(String.format ("%.2f",(abnormalMinute+askForLeaveTime+evectionTimeTime)/60));
@ -131,9 +134,13 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
}
public double removeAskForLeave(String analysisDate,List<Map<String, Object>> scheduleResult,List<Map<String,Object>> askForLeaveList,
Map<String,Map<String,Object>> askForLeaveItems,List<Map<String, Object>> offsetAskForLeaveAnomaly,List<Map<String, Object>> abnormalClockInList){
Map<String,Map<String,Object>> askForLeaveItems,List<Map<String, Object>> abnormalClockInList,
Map<Map<String, Object>,List<Map<String, Object>>> askForLeaveToOffsetAbnomaly){
double employTime = 0;
double edsc = Double.valueOf(scheduleResult.get(0).get("edsc").toString());
//半天规则
String btgz = Util.null2String(scheduleResult.get(0).get("btgz"));
Map<String,List<Map<String,Object>>> askForLeaveGroupMap = askForLeaveList.stream().filter(e->!"".equals(Util.null2String(e.get("kssj"))) && !"".equals(Util.null2String(e.get("jssj"))))
.collect(Collectors.groupingBy(e->Util.null2String(e.get("ksrq"))+Util.null2String(e.get("kssj"))+"&"+Util.null2String(e.get("jsrq"))+Util.null2String(e.get("jssj"))));
List<Map<String,Object>> filterAskForLeaveList = Lists.newArrayList();
@ -154,20 +161,28 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
String btj = Util.null2String(askForLeaveList.get(i).get("btj"));
//作用时段
String zysd = Util.null2String(askForLeaveItem.get("zysd"));
//消除异常
List<Map<String, Object>> offsetAbnomaly = askForLeaveToOffsetAbnomaly.get(askForLeaveList.get(i));
if (!zysd.contains(WorkForTimeEnum.WORK_TIME.getKey()) && !WorkForTimeEnum.ALL_TIME.getKey().equals(zysd)){
continue;
}
if ("".equals(Util.null2String(askForLeaveList.get(i).get("kssj"))) || "".equals(Util.null2String(askForLeaveList.get(i).get("jssj")))){
//弹性请假,半天出差
if (CheckBoxEnum.CHECKED.getKey().equals(btj)){
//半天出差
employTime = employTime + edsc*30;
//弹性请假,半天请假
if (CheckBoxEnum.CHECKED.getKey().equals(btj) && (btgz.equals(HalfDayRuleREnum.BY_CLASS_SET.getKey()) || btgz.equals(HalfDayRuleREnum.FIXED_DURATION.getKey()))){
//半天请假
Set<Map<String,Object>> schedules = Utils.getScheduleByAbnormalList(scheduleResult,offsetAbnomaly,analysisDate);
if (schedules.size() > 0){
employTime += schedules.stream().mapToDouble(e->Double.valueOf(e.get("edfzs").toString())).sum();
}else {
employTime +=edsc*30;
}
}else if (!"".equals(qjsc)){
//时长请假
if (offsetAskForLeaveAnomaly.size() > 0){
List<Map<String, Object>> list = offsetAskForLeaveAnomaly.stream().filter(e->ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
employTime += Math.round(list.size()/Double.valueOf(offsetAskForLeaveAnomaly.size()) *Double.valueOf(qjsc)*60);
if (offsetAbnomaly.size() > 0){
List<Map<String, Object>> list = offsetAbnomaly.stream().filter(e->ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
employTime += Math.round(list.size()/Double.valueOf(offsetAbnomaly.size()) *Double.valueOf(qjsc)*60);
}else {
employTime +=Double.valueOf(qjsc)*60;
}
@ -189,7 +204,7 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
String dtkssj = Utils.getkssjTime(scheduleMap,analysisDate);
String dtjssj = Utils.getjssjTime(scheduleMap,analysisDate);
List<Map<String,Object>> list = abnormalClockInList.stream().filter(e->e.get("itemType")==AttendanceItemTypeEnum.MISSE_CARD &&(DateUtil.getTime(dtkssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) <=0 && DateUtil.getTime(dtjssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) >=0)).collect(Collectors.toList());
List<Map<String,Object>> list = Utils.getAbnormalListBySchedule(scheduleMap,abnormalClockInList,analysisDate).stream().filter(e->e.get("itemType")==AttendanceItemTypeEnum.MISSE_CARD).collect(Collectors.toList());
if (list.size() == 0){
//存在漏卡时不计入请假时长,防止重复累加
employTime +=Utils.getStartAndEndTime(dtkssj,dtjssj,filterAskForLeaveList.get(i));
@ -201,7 +216,8 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
}
public double removeEvection(String analysisDate,List<Map<String, Object>> scheduleResult,List<Map<String,Object>> evectionList,
Map<String,Map<String,Object>> evectionItems,List<Map<String, Object>> offsetEvectionAnomaly,List<Map<String, Object>> abnormalClockInList){
Map<String,Map<String,Object>> evectionItems,List<Map<String, Object>> abnormalClockInList,
Map<Map<String, Object>,List<Map<String, Object>>> evectionToOffsetAbnomaly){
double employTime = 0;
double edsc = Double.valueOf(scheduleResult.get(0).get("edsc").toString());
@ -227,6 +243,9 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
String btcc = Util.null2String(evectionList.get(i).get("btcc"));
//作用时段
String zysd = Util.null2String(askForLeaveItem.get("zysd"));
List<Map<String, Object>> abnormalList = evectionToOffsetAbnomaly.get(evectionList.get(i));
if (!zysd.contains(WorkForTimeEnum.WORK_TIME.getKey()) && !WorkForTimeEnum.ALL_TIME.getKey().equals(zysd)){
continue;
}
@ -238,9 +257,9 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
employTime = employTime + edsc*30;
}else if (!"".equals(ccsc)){
//时长请假
if (offsetEvectionAnomaly.size() > 0){
List<Map<String, Object>> list = offsetEvectionAnomaly.stream().filter(e->ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
employTime += Math.round(list.size()/Double.valueOf(offsetEvectionAnomaly.size()) *Double.valueOf(ccsc)*60);
if (abnormalList.size() > 0){
List<Map<String, Object>> list = abnormalList.stream().filter(e->ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
employTime += Math.round(list.size()/Double.valueOf(abnormalList.size()) *Double.valueOf(ccsc)*60);
}else {
employTime += Double.valueOf(ccsc)*60;
}
@ -261,8 +280,7 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
String dtjssj = Utils.getjssjTime(scheduleMap,analysisDate);
if (ClassSegmentTypeEnum.WORK_TIME.getKey().equals(scheduleMap.get("bdlx"))){
List<Map<String,Object>> list = abnormalClockInList.stream().filter(e->e.get("itemType")==AttendanceItemTypeEnum.MISSE_CARD &&(DateUtil.getTime(dtkssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) <=0 && DateUtil.getTime(dtjssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) >=0)).collect(Collectors.toList());
List<Map<String,Object>> list = Utils.getAbnormalListBySchedule(scheduleMap,abnormalClockInList,analysisDate).stream().filter(e->e.get("itemType")==AttendanceItemTypeEnum.MISSE_CARD).collect(Collectors.toList());
if (list.size() == 0){
//存在漏卡时不计入出差时长,防止重复累加
employTime = employTime + Utils.getStartAndEndTime(dtkssj,dtjssj,filterEvectionList.get(i));

@ -112,7 +112,7 @@ public class GetAskForLeaveCmd extends AbstractCommonCommand<Map<String,Object>>
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(askForLeaveItem,bdlx);
if (item != null){
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes, AccountingUnitEnum.MINUTES));
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString())));
itemMap.put("item",item.get("keyid"));
resultList.add(itemMap);
}

@ -109,7 +109,7 @@ public class GetEvectionCmd extends AbstractCommonCommand<Map<String,Object>> {
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(evectionItem,bdlx);
if (item != null){
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes, AccountingUnitEnum.MINUTES));
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString())));
itemMap.put("item",item.get("keyid"));
resultList.add(itemMap);
}

@ -18,6 +18,9 @@ import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -149,12 +152,14 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
map.put("bcxx",resultList == null || resultList.size()==0 || resultList.get(0) ==null ? "" :resultList.get(0).get("bcxx"));
map.put("bcsdxx",resultList == null || resultList.size()==0 || resultList.get(0) ==null ? "":resultList.get(0).get("bcsdxx"));
if (resultList.size()>0){
map.put("edsc",Util.null2String(resultList.get(0).get("edsc")));
map.put("sfdx",Util.null2String(resultList.get(0).get("sfdx")));
map.put("zddxfz",Util.null2String(resultList.get(0).get("zddxfz")));
map.put("dxhs",Util.null2String(resultList.get(0).get("dxhs")));
map.put("sfxx",resultList.get(0).get("sfxx"));
map.put("xxbdkzdjb",resultList.get(0).get("xxbdkzdjb"));
map.putAll(resultList.get(0));
// map.put("edsc",Util.null2String(resultList.get(0).get("edsc")));
// map.put("sfdx",Util.null2String(resultList.get(0).get("sfdx")));
// map.put("zddxfz",Util.null2String(resultList.get(0).get("zddxfz")));
// map.put("dxhs",Util.null2String(resultList.get(0).get("dxhs")));
// map.put("sfxx",resultList.get(0).get("sfxx"));
// map.put("btgz",resultList.get(0).get("btgz"));
// map.put("xxbdkzdjb",resultList.get(0).get("xxbdkzdjb"));
}else {
map.put("edsc","0");
}
@ -170,6 +175,8 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
map.put("thdkfzs","60");
map.put("rqlx",dateMap.get(e.getKey()));
map.put("edxss",overtimePlan.get("jbsc"));
map.put("edfzs",Double.valueOf(overtimePlan.get("jbsc").toString())*60);
map.put("","0");
map.put("jblx",overPlanattendanceItems);
if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) < 0){

@ -688,7 +688,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
//迟到
int betWeenTime = DateUtil.getBetWeenMinutes(kssjStart, signTime);
if (betWeenTime <= zddxfz) {
betWeenTime = Double.valueOf(Utils.getItemduration(dxhs, AccountingUnitEnum.MINUTES.getKey(), betWeenTime, AccountingUnitEnum.MINUTES)).intValue();
betWeenTime = Double.valueOf(Utils.getItemduration(dxhs, AccountingUnitEnum.MINUTES.getKey(), betWeenTime, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()))).intValue();
flexibleWorkTime = DateUtil.AfterMinutes(kssjStart, betWeenTime);
clockdto.setTimeType(ClockPointEnum.EQUAL);
} else if (betWeenTime > zddxfz) {

@ -61,6 +61,7 @@ public class MergeApairClockPoint extends AbstractAdjustClockPointAction {
if (!Utils.ifRestClassSegment(clockPointDTO.getClassSegmentType())){
if (clockPointDTO.getPointType() == ClockPointEnum.START){
clockPointDTO.setTimeType(ClockPointEnum.EMPTY);
clockPointDTO.setResourceClockPointDTO(startPointDTO);
adjustClcokInPointList.add(clockPointDTO);
}
}
@ -79,6 +80,7 @@ public class MergeApairClockPoint extends AbstractAdjustClockPointAction {
if (clockPointDTO.getPointType() == ClockPointEnum.START && DateUtil.getTime(startClockTime).compareTo(DateUtil.getTime(clockPointDTO.getClassTime())) > 0){
clockPointDTO.setTimeType(ClockPointEnum.AFTER);
clockPointDTO.setClockTime(startPointDTO.getClockTime());
clockPointDTO.setResourceClockPointDTO(startPointDTO);
adjustClcokInPointList.add(clockPointDTO);
}
}
@ -93,6 +95,7 @@ public class MergeApairClockPoint extends AbstractAdjustClockPointAction {
if (!Utils.ifRestClassSegment(clockPointDTO.getClassSegmentType())){
if (clockPointDTO.getPointType() == ClockPointEnum.END){
clockPointDTO.setTimeType(ClockPointEnum.EMPTY);
clockPointDTO.setResourceClockPointDTO(endPointDTO);
adjustClcokInPointList.add(clockPointDTO);
}
}
@ -109,6 +112,7 @@ public class MergeApairClockPoint extends AbstractAdjustClockPointAction {
if (clockPointDTO.getPointType() == ClockPointEnum.END && DateUtil.getTime(endClockTime).compareTo(DateUtil.getTime(clockPointDTO.getClassTime())) < 0){
clockPointDTO.setTimeType(ClockPointEnum.BEFORE);
clockPointDTO.setClockTime(endPointDTO.getClockTime());
clockPointDTO.setResourceClockPointDTO(endPointDTO);
adjustClcokInPointList.add(clockPointDTO);
}
}

@ -52,10 +52,12 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
List<Map<String,Object>> offsetAskForLeaveAnomaly = (List<Map<String,Object>>)params.get("offsetAskForLeaveAnomaly");
//出差外出后消除的异常
List<Map<String,Object>> offsetEvectionAnomaly = (List<Map<String,Object>>)params.get("offsetEvectionAnomaly");
//请假-抵消异常
Map<Map<String, Object>,List<Map<String, Object>>> askForLeaveToOffsetAbnomaly = (Map<Map<String, Object>,List<Map<String, Object>>>)params.get("askForLeaveToOffsetAbnomaly");
//出差-抵消异常
Map<Map<String, Object>,List<Map<String, Object>>> evectionToOffsetAbnomaly = (Map<Map<String, Object>,List<Map<String, Object>>>)params.get("evectionToOffsetAbnomaly");
//经过请假外出处理过的异常项目
List<Map<String,Object>> abnormalClockInList = (List<Map<String,Object>>)params.get("abnormalClockInList");
//不需要记录的异常项目
List<Map<String,Object>> notRecordAbnormalClockInList = (List<Map<String,Object>>)params.get("notRecordAbnormalClockInList");
//加班项目
List<Map<String, Object>> workTimeBeLateItems = (List<Map<String,Object>>)params.get("workTimeBeLateItems");
//打卡匹配
@ -64,7 +66,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
Map<String, Object> scheduleMap = (Map<String, Object>)params.get("scheduleMap");
abnormalClockInList.addAll(notRecordAbnormalClockInList);
//总抵消异常
List<Map<String,Object>> anomalyList = Lists.newArrayList();
@ -238,14 +240,14 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
/**
*
*/
int askForLeaveTime = removeAskForLeave(realityStartTime, realityEndime, Util.null2String(getWorkOverTimeParam.get("workfor"))
, bdlx, askForLeaveList, askForLeaveItems, offsetAskForLeaveAnomaly);
int askForLeaveTime = removeAskForLeave(scheduleMap,realityStartTime, realityEndime
, bdlx, askForLeaveList, askForLeaveItems, askForLeaveToOffsetAbnomaly);
/**
*
*/
int evectionTime = removeEvection(realityStartTime, realityEndime, Util.null2String(getWorkOverTimeParam.get("workfor"))
, bdlx, evectionList, evectionItems, offsetEvectionAnomaly);
int evectionTime = removeEvection(scheduleMap,realityStartTime, realityEndime
, bdlx, evectionList, evectionItems, evectionToOffsetAbnomaly);
/**
*
@ -278,14 +280,18 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
*
* @param kssj
* @param jssj
* @param workFor
* @param askForLeaveList
* @param askForLeaveItems
* @return
*/
public int removeAskForLeave(String kssj,String jssj,String workFor,String bdlx,List<Map<String, Object>> askForLeaveList,
Map<String,Map<String,Object>> askForLeaveItems,List<Map<String, Object>> offsetAskForLeaveAnomaly ){
public int removeAskForLeave(Map<String, Object> scheduleMap,String kssj,String jssj,String bdlx,List<Map<String, Object>> askForLeaveList,
Map<String,Map<String,Object>> askForLeaveItems,Map<Map<String, Object>,List<Map<String, Object>>> askForLeaveToOffsetAbnomaly ){
int employTime = 0;
//半天规则
String btgz = Util.null2String(scheduleMap.get("btgz"));
double edsc = Double.valueOf(scheduleMap.get("edsc").toString());
for (int i=0;i<askForLeaveList.size();i++){
//请假时长
String qjsc = Util.null2String(askForLeaveList.get(i).get("qjsc"));
@ -293,15 +299,28 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
Map<String,Object> askForLeaveItem = askForLeaveItems.get(askForLeaveList.get(i).get("jqlx"));
//作用时段
String zysd = Util.null2String(askForLeaveItem.get("zysd"));
// if (!zysd.contains(workFor) && !zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())){
// continue;
// }
//消除异常
List<Map<String, Object>> abnormalList = askForLeaveToOffsetAbnomaly.get(askForLeaveList.get(i));
//半天请假
String btj = Util.null2String(askForLeaveList.get(i).get("btj"));
if (!zysd.contains(Utils.getWorkFor(bdlx)) && !zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())){
continue;
}
List<Map<String, Object>> list = Utils.getAbnormalListBySchedule(scheduleMap,abnormalList,Util.null2String(params.get("analysisDate")));
if ("".equals(Util.null2String(askForLeaveList.get(i).get("kssj"))) || "".equals(Util.null2String(askForLeaveList.get(i).get("jssj")))){
if (!"".equals(qjsc)){
if (CheckBoxEnum.CHECKED.getKey().equals(btj) && (btgz.equals(HalfDayRuleREnum.BY_CLASS_SET.getKey()) || btgz.equals(HalfDayRuleREnum.FIXED_DURATION.getKey()))){
//半天请假
if (list.size() > 0){
employTime+=Double.valueOf(scheduleMap.get("edfzs").toString());
}else if (zysd.equals(Utils.getWorkFor(bdlx))){
employTime+=Double.valueOf(scheduleMap.get("edfzs").toString());
}
} else if (!"".equals(qjsc)){
//时长请假
if (offsetAskForLeaveAnomaly.size() > 0){
List<Map<String, Object>> list = offsetAskForLeaveAnomaly.stream().filter(e->bdlx.equals(e.get("bdlx"))).collect(Collectors.toList());
employTime += Math.round(list.size()/Double.valueOf(offsetAskForLeaveAnomaly.size()) *Double.valueOf(qjsc)*60);
if (abnormalList.size() > 0){
employTime += Math.round(list.size()/Double.valueOf(abnormalList.size()) *Double.valueOf(qjsc)*60);
}
}
}else {
@ -319,8 +338,8 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
* @param evectionList
* @return
*/
public int removeEvection(String kssj,String jssj,String workFor,String bdlx,List<Map<String, Object>> evectionList,Map<String,
Map<String,Object>> evectionItems,List<Map<String, Object>> offsetEvectionAnomaly){
public int removeEvection(Map<String, Object> scheduleMap,String kssj,String jssj,String bdlx,List<Map<String, Object>> evectionList,Map<String,
Map<String,Object>> evectionItems,Map<Map<String, Object>,List<Map<String, Object>>> evectionToOffsetAbnomaly){
int askForLeaveTime=0;
for (int i=0;i<evectionList.size();i++){
//出差时长
@ -329,15 +348,17 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
Map<String,Object> evectionItem = evectionItems.get(evectionList.get(i).get("cclx"));
//作用时段
String zysd = Util.null2String(evectionItem.get("zysd"));
// if (!zysd.contains(workFor) && !WorkForTimeEnum.ALL_TIME.getKey().equals(zysd)){
// continue;
// }
//异常
List<Map<String, Object>> abnormalList = evectionToOffsetAbnomaly.get(evectionList.get(i));
if (!zysd.contains(Utils.getWorkFor(bdlx)) && !WorkForTimeEnum.ALL_TIME.getKey().equals(zysd)){
continue;
}
if ("".equals(Util.null2String(evectionList.get(i).get("kssj"))) || "".equals(Util.null2String(evectionList.get(i).get("jssj")))){
if (!"".equals(qjsc)){
if (offsetEvectionAnomaly.size() > 0){
List<Map<String, Object>> list = offsetEvectionAnomaly.stream().filter(e->bdlx.equals(e.get("bdlx"))).collect(Collectors.toList());
askForLeaveTime += Math.round(list.size()/Double.valueOf(offsetEvectionAnomaly.size()) *Double.valueOf(qjsc)*60);
if (abnormalList.size() > 0){
List<Map<String, Object>> list = abnormalList.stream().filter(e->bdlx.equals(e.get("bdlx"))).collect(Collectors.toList());
askForLeaveTime += Math.round(list.size()/Double.valueOf(abnormalList.size()) *Double.valueOf(qjsc)*60);
}
}
}else {

@ -50,4 +50,8 @@ public class ClockPointDTO {
* true:false
*/
private boolean record;
/**
* recordfalse
*/
private ClockPointDTO resourceClockPointDTO;
}

@ -20,7 +20,7 @@ public interface AskForLeaveService {
* @param param
* @return
*/
boolean askForLeaveByHalfDay(Map<String,Object> param);
Map<String,Object> askForLeaveByHalfDay(Map<String,Object> param);
/**
*

@ -88,7 +88,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
String hsdw = Util.null2String(workTimeBeLateItems.get(0).get("hsdw"));
String kczgsc = Util.null2String(workTimeBeLateItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
saveWorkTimeBeLateParam.put("item",workTimeBeLateItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
saveWorkTimeBeLateParam.put("betweenMinutes",between);
@ -130,7 +130,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
if (!"".equals(jbwdhlfzs) && between > Integer.valueOf(jbwdhlfzs)){
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
String kczgsc = Util.null2String(lateItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
saveWorkTimeBeLateParam.put("item",lateItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
saveWorkTimeBeLateParam.put("betweenMinutes",between);
@ -164,7 +164,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
String thfghlfzs = Util.null2String(beAwayItems.get(0).get("thfghlfzs"));
if (!"".equals(thfghlfzs) && between> Integer.valueOf(thfghlfzs)){
String kczgsc = Util.null2String(lateItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
saveWorkTimeBeLateParam.put("item",lateItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
@ -246,7 +246,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
double hsl = Double.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("hsl")));
String hsdw = Util.null2String(workTimeBeLateItems.get(0).get("hsdw"));
String kczgsc = Util.null2String(workTimeBeLateItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
saveWorkTimeBeLateParam.put("item",workTimeBeLateItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
saveWorkTimeBeLateParam.put("betweenMinutes",between);
@ -284,7 +284,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
if (!"".equals(jbzzhlfzs) && between > Integer.valueOf(jbzzhlfzs)){
log.debug("between :{},jbzzhlfzs:{}",between,jbzzhlfzs);
String kczgsc = Util.null2String(beEarlyItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
saveWorkTimeBeLateParam.put("item",beEarlyItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
@ -319,7 +319,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
String tqlghlfzs = Util.null2String(beAwayItems.get(0).get("tqlghlfzs"));
if (!"".equals(tqlghlfzs) && between> Integer.valueOf(tqlghlfzs) && beEarlyItems.size()>0){
String kczgsc = Util.null2String(beEarlyItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
saveWorkTimeBeLateParam.put("item",beEarlyItems.get(0).get("key"));

@ -143,11 +143,11 @@ public class AllowanceServiceImpl extends Service implements AllowanceService {
between = qbkcsc;
}else {
int deductionDuration = between-qbkcsc;
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES)).intValue()+qbkcsc;
between = Double.valueOf(Utils.getItemduration(cckcbc,AccountingUnitEnum.MINUTES.getKey(),deductionDuration,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()))).intValue()+qbkcsc;
}
}
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
saveWorkTimeBeLateParam.put("item",workTimeBeLateItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
saveWorkTimeBeLateParam.put("betweenMinutes",between);

@ -2,16 +2,17 @@ package com.engine.jucailinkq.attendance.attendanceanalysis.service.impl;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.GetAskForLeaveCmd;
import com.engine.jucailinkq.attendance.attendanceanalysis.service.AskForLeaveService;
import com.engine.jucailinkq.attendance.enums.AccountingUnitEnum;
import com.engine.jucailinkq.attendance.enums.AttendanceItemTypeEnum;
import com.engine.jucailinkq.attendance.enums.CheckBoxEnum;
import com.engine.jucailinkq.attendance.enums.WorkForTimeEnum;
import com.engine.jucailinkq.attendance.enums.*;
import com.engine.jucailinkq.common.util.CommonUtil;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.Utils;
import com.engine.core.impl.Service;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.sun.corba.se.spi.ior.IdentifiableFactory;
import weaver.general.Util;
import java.time.ZoneOffset;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
@ -53,8 +54,9 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
}else {
String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw"));
double hsl = Double.valueOf(Util.null2String(abnormalClockInList.get(i).get("hsl")));
double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
abnormalClockInList.get(i).put("itemduration",itemduration);
abnormalClockInList.get(i).put("betweenMinutes",betweenTime-intersectionTime);
}
}
}
@ -66,16 +68,171 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
}
@Override
public boolean askForLeaveByHalfDay(Map<String, Object> param) {
public Map<String,Object> askForLeaveByHalfDay(Map<String, Object> param) {
Map<String,Object> resultMap = Maps.newHashMap();
//人员迟到、早退、漏卡等记录
List<Map<String,Object>> abnormalClockInList = (List<Map<String,Object>>)param.get("abnormalClockInList");
//班次
List<Map<String,Object>> scheduleResult = (List<Map<String,Object>>)param.get("scheduleResult");
//
//作用时段
String zysd = Util.null2String(param.get("zysd"));
//作用时段
String analysisDate = Util.null2String(param.get("analysisDate"));
//半天规则
String btgz = Util.null2String(scheduleResult.get(0).get("btgz"));
//额定时长
double edsc = Double.valueOf(scheduleResult.get(0).get("edsc").toString());
Map<String,Object> askForLeaveItem = (Map<String,Object>)param.get("askForLeaveItem");
//核算量
double hsl = Double.valueOf(Util.null2String(askForLeaveItem.get("hsl")));
//核算单位
String hsdw = Util.null2String(askForLeaveItem.get("hsdw"));
List<Map<String,Object>> offsetAskForLeaveAnomaly = Lists.newArrayList();
List<String> classSegmens = Lists.newArrayList();
for (String str:zysd.split(",")){
classSegmens.add(Utils.getClassSegmenByWorkFor(str));
}
List<Map<String,Object>> abnormalList = Lists.newArrayList();
for (Map<String,Object> abnormalClock:abnormalClockInList){
if (classSegmens.contains(abnormalClock.get("bdlx"))){
abnormalList.add(abnormalClock);
}
}
double itemduration = 0;
if (btgz.equals(HalfDayRuleREnum.BY_CLASS_SET.getKey())){
//按班次设置
Map<String,Object> haveAbnormalScheduleMap = getHaveAbnormalScheduleMap(scheduleResult,abnormalList,analysisDate);
List<Map<String,Object>> haveAbnormalScheduleList = (List<Map<String,Object>>)haveAbnormalScheduleMap.get("haveAbnormalScheduleList");
Map<Map<String, Object>,List<Map<String,Object>>> haveAbnormalscheduleMapGroup = (Map<Map<String, Object>,List<Map<String,Object>>>)haveAbnormalScheduleMap.get("haveAbnormalscheduleMapGroup");
double restTime = 0.5;
if (haveAbnormalScheduleList == null || haveAbnormalScheduleList.size() == 0){
//当没有消除异常时默认额度时长一半、天数固定1天
if (hsdw.equals(AccountingUnitEnum.HOUR.getKey())){
itemduration = edsc*0.5;
}else if (hsdw.equals(AccountingUnitEnum.DAY.getKey())){
itemduration = 0.5;
}else if (hsdw.equals(AccountingUnitEnum.MINUTES.getKey())){
itemduration = edsc*30;
}else if (hsdw.equals(AccountingUnitEnum.ONCE.getKey())){
itemduration = 1;
}
}else {
for (int i=haveAbnormalScheduleList.size()-1;i>=0;i--){
double edts = Double.valueOf(haveAbnormalScheduleList.get(i).get("edts").toString());
restTime = Utils.subtract(restTime,edts);
if (restTime >=0){
offsetAskForLeaveAnomaly.addAll(haveAbnormalscheduleMapGroup.get(haveAbnormalScheduleList.get(i)));
if (hsdw.equals(AccountingUnitEnum.HOUR.getKey())){
itemduration += Double.valueOf(haveAbnormalScheduleList.get(i).get("edxss").toString());
}else if (hsdw.equals(AccountingUnitEnum.DAY.getKey())){
itemduration = 0.5;
}else if (hsdw.equals(AccountingUnitEnum.MINUTES.getKey())){
itemduration += Double.valueOf(haveAbnormalScheduleList.get(i).get("edfzs").toString());
}else if (hsdw.equals(AccountingUnitEnum.ONCE.getKey())){
itemduration = 1;
}
}
}
}
return false;
}else if (btgz.equals(HalfDayRuleREnum.FIXED_DURATION.getKey())){
//取固定时间
//分隔时间点
String fgsjd = Util.null2String(scheduleResult.get(0).get("fgsjd"));
fgsjd = analysisDate +" "+fgsjd;
String finalFgsjd = fgsjd;
List<Map<String,Object>> beforeAbnormalList = abnormalList.stream().filter(e->DateUtil.getTime(e.get("pointTime").toString()).compareTo(DateUtil.getTime(finalFgsjd)) <=0).collect(Collectors.toList());
List<Map<String,Object>> mergebeforeAbnormalList = Utils.mergeOneScheduleAbnormal(scheduleResult,beforeAbnormalList,analysisDate);
List<Map<String,Object>> afterAbnormalList = abnormalList.stream().filter(e->DateUtil.getTime(e.get("pointTime").toString()).compareTo(DateUtil.getTime(finalFgsjd)) >0).collect(Collectors.toList());
List<Map<String,Object>> mergeafterAbnormalList = Utils.mergeOneScheduleAbnormal(scheduleResult,afterAbnormalList,analysisDate);
boolean ifBefore = false;
if (beforeAbnormalList.size() > afterAbnormalList.size()){
offsetAskForLeaveAnomaly.addAll(beforeAbnormalList);
ifBefore=true;
}else if (beforeAbnormalList.size() < afterAbnormalList.size()){
offsetAskForLeaveAnomaly.addAll(afterAbnormalList);
}else {
Map<String,Object> beforeHaveAbnormalScheduleMap = getHaveAbnormalScheduleMap(scheduleResult,beforeAbnormalList,analysisDate);
List<Map<String,Object>> beforehaveAbnormalScheduleList = (List<Map<String,Object>>)beforeHaveAbnormalScheduleMap.get("haveAbnormalScheduleList");
double beforeTotalAbnormalMinute = beforehaveAbnormalScheduleList.stream().mapToDouble(e->Double.valueOf(e.get("totalAbnormalMinute").toString())).sum();
Map<String,Object> afterHaveAbnormalScheduleMap = getHaveAbnormalScheduleMap(scheduleResult,afterAbnormalList,analysisDate);
List<Map<String,Object>> afterhaveAbnormalScheduleList = (List<Map<String,Object>>)afterHaveAbnormalScheduleMap.get("haveAbnormalScheduleList");
double afterTotalAbnormalMinute = afterhaveAbnormalScheduleList.stream().mapToDouble(e->Double.valueOf(e.get("totalAbnormalMinute").toString())).sum();
if (beforeTotalAbnormalMinute > afterTotalAbnormalMinute || beforeTotalAbnormalMinute == afterTotalAbnormalMinute){
offsetAskForLeaveAnomaly.addAll(beforeAbnormalList);
ifBefore=true;
}else if (beforeTotalAbnormalMinute < afterTotalAbnormalMinute){
offsetAskForLeaveAnomaly.addAll(afterAbnormalList);
}
}
if (hsdw.equals(AccountingUnitEnum.DAY.getKey())){
itemduration=0.5;
}else if (hsdw.equals(AccountingUnitEnum.ONCE.getKey())){
itemduration=1;
}else {
String keyName="";
if (hsdw.equals(AccountingUnitEnum.MINUTES.getKey())){
keyName="edfzs";
}else{
keyName="edxss";
}
if (ifBefore){
List<Map<String,Object>> beforeScheduleList = scheduleResult.stream().filter(e-> DateUtil.getTime(Utils.getkssjTime(e,analysisDate)).compareTo(DateUtil.getTime(finalFgsjd))<=0 && classSegmens.contains(e.get("bdlx"))).collect(Collectors.toList());
for (int i=0;i<beforeScheduleList.size();i++){
if (i == beforeScheduleList.size()-1){
if (keyName.equals("edfzs")){
itemduration+=DateUtil.getBetWeenMinutes(Utils.getkssjTime(beforeScheduleList.get(i),analysisDate),fgsjd);
}else if (keyName.equals("edxss")){
itemduration+=Utils.divide(DateUtil.getBetWeenMinutes(Utils.getkssjTime(beforeScheduleList.get(i),analysisDate),fgsjd),60);
}
}else {
itemduration+=Double.valueOf(beforeScheduleList.get(i).get(keyName).toString());
}
}
}else {
List<Map<String,Object>> afterScheduleList = scheduleResult.stream().filter(e-> DateUtil.getTime(Utils.getjssjTime(e,analysisDate)).compareTo(DateUtil.getTime(finalFgsjd))>=0 && classSegmens.contains(e.get("bdlx"))).collect(Collectors.toList());
for (int i=0;i<afterScheduleList.size();i++){
if (i == 0){
if (keyName.equals("edfzs")){
itemduration+=DateUtil.getBetWeenMinutes(fgsjd,Utils.getjssjTime(afterScheduleList.get(i),analysisDate));
}else if (keyName.equals("edxss")){
itemduration+=Utils.divide(DateUtil.getBetWeenMinutes(fgsjd,Utils.getjssjTime(afterScheduleList.get(i),analysisDate)),60);
}
}else {
itemduration+=Double.valueOf(afterScheduleList.get(i).get(keyName).toString());
}
}
}
}
}
AccountingUnitEnum itemdurationType = null;
if (hsdw.equals(AccountingUnitEnum.HOUR.getKey())){
itemdurationType = AccountingUnitEnum.HOUR;
}else if (hsdw.equals(AccountingUnitEnum.DAY.getKey())){
itemdurationType = AccountingUnitEnum.DAY;
}else if (hsdw.equals(AccountingUnitEnum.MINUTES.getKey())){
itemdurationType = AccountingUnitEnum.MINUTES;
}else if (hsdw.equals(AccountingUnitEnum.ONCE.getKey())){
itemdurationType = AccountingUnitEnum.ONCE;
}
itemduration = Utils.getItemduration(hsl,hsdw,itemduration,itemdurationType,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
abnormalClockInList.removeAll(offsetAskForLeaveAnomaly);
abnormalClockInList = getAbnormalClockInList(abnormalClockInList,offsetAskForLeaveAnomaly);
resultMap.put("offsetAskForLeaveAnomaly",offsetAskForLeaveAnomaly);
resultMap.put("abnormalClockInList",abnormalClockInList);
resultMap.put("itemduration",itemduration);
return resultMap;
}
@Override
public Map<String,Object> askForLeaveByDurationTime(Map<String, Object> param) {
//人员迟到、早退、漏卡等记录
@ -124,5 +281,63 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
public Map<String, Object> getAskForLeave(Map<String, Object> param) {
return commandExecutor.execute(new GetAskForLeaveCmd(param));
}
/**
*
* @param scheduleResult
* @param abnormalClockInList
* @param analysisDate
* @return
*/
public Map<String,Object> getHaveAbnormalScheduleMap(List<Map<String,Object>> scheduleResult,List<Map<String,Object>> abnormalClockInList,String analysisDate){
Map<Map<String, Object>,List<Map<String,Object>>> scheduleMapGroup = Maps.newHashMap();
List<Map<String,Object>> haveAbnormalScheduleList = Lists.newArrayList();
for (Map<String, Object> scheduleMap :scheduleResult){
if (scheduleMap.get("edts") == null || Double.valueOf(scheduleMap.get("edts").toString()) == 0){
continue;
}
List<Map<String,Object>> list = Utils.getAbnormalListBySchedule(scheduleMap,abnormalClockInList,analysisDate);
if (list.size() > 0){
double totalTime=0;
for (Map<String,Object> abnormal:list){
AttendanceItemTypeEnum itemType = (AttendanceItemTypeEnum)abnormal.get("itemType");
if (itemType == AttendanceItemTypeEnum.MISSE_CARD){
totalTime = Double.valueOf(scheduleMap.get("edxss").toString())*60;
break;
}
int betweenMinutes = Integer.valueOf(Util.null2String(abnormal.get("betweenMinutes")==null?"0":abnormal.get("betweenMinutes")));
totalTime+=betweenMinutes;
}
scheduleMap.put("totalAbnormalMinute",totalTime);
haveAbnormalScheduleList.add(scheduleMap);
scheduleMapGroup.put(scheduleMap,list);
}
}
haveAbnormalScheduleList = haveAbnormalScheduleList.stream().sorted(Comparator.comparing(e->Double.valueOf(e.get("totalAbnormalMinute").toString()))).collect(Collectors.toList());
Map<String,Object> resultMap = Maps.newHashMap();
resultMap.put("haveAbnormalScheduleList",haveAbnormalScheduleList);
resultMap.put("haveAbnormalscheduleMapGroup",scheduleMapGroup);
return resultMap;
}
public List<Map<String,Object>> getAbnormalClockInList(List<Map<String,Object>> abnormalClockInList,List<Map<String,Object>> offsetAskForLeaveAnomaly){
abnormalClockInList = abnormalClockInList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("pointTime").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
for (Map<String,Object> offsetAbnormal:offsetAskForLeaveAnomaly){
if ((boolean)offsetAbnormal.get("record")){
String pointTime = offsetAbnormal.get("pointTime").toString();
if (abnormalClockInList.size() > 0){
for (int i = abnormalClockInList.size()-1;i>=0;i--){
if (!(boolean)abnormalClockInList.get(i).get("record") && pointTime.equals(abnormalClockInList.get(i).get("resourceClassTime"))){
abnormalClockInList.get(i).put("record",true);
}
}
}
}
}
return abnormalClockInList;
}
}

@ -137,7 +137,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
if (workTimeBeLateItems.size() > 0){
double hsl = Double.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("hsl")));
String hsdw = Util.null2String(workTimeBeLateItems.get(0).get("hsdw"));
double itemduration = Utils.getItemduration(hsl,hsdw,lateDurationTime,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,lateDurationTime,AccountingUnitEnum.MINUTES,rgzscyq);
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("item", workTimeBeLateItems.get(0).get("key"));
itemMap.put("itemduration",itemduration);
@ -158,7 +158,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
if (workTimeBeLateItems.size() > 0){
double hsl = Double.valueOf(Util.null2String(workTimeBeLateItems.get(0).get("hsl")));
String hsdw = Util.null2String(workTimeBeLateItems.get(0).get("hsdw"));
double itemduration = Utils.getItemduration(hsl,hsdw,earlyLeaveMinute,AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,earlyLeaveMinute,AccountingUnitEnum.MINUTES,rgzscyq);
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("item", workTimeBeLateItems.get(0).get("key"));
itemMap.put("itemduration",itemduration);

@ -52,7 +52,7 @@ public class EvectionServiceImpl extends Service implements EvectionService {
}else {
String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw"));
double hsl = Double.valueOf(Util.null2String(abnormalClockInList.get(i).get("hsl")));
double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES);
double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
abnormalClockInList.get(i).put("itemduration",itemduration);
}
}

@ -64,7 +64,7 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe
//考勤项目
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
String analysisDate = Util.null2String(params.get("analysisDate"));
List<Map<String,Object>> needRecordMissCardList = abnormalList.stream().filter(e->(boolean)e.get("record") && e.get("itemType") == AttendanceItemTypeEnum.MISSE_CARD).collect(Collectors.toList());
List<Map<String,Object>> needRecordMissCardList = abnormalList.stream().filter(e-> e.get("itemType") == AttendanceItemTypeEnum.MISSE_CARD).collect(Collectors.toList());
if (needRecordMissCardList.size() == 0){
return abnormalList;
}
@ -77,14 +77,15 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe
if (!Utils.ifRestClassSegment(bdlx) && !Utils.ifAskforOrEvctionClassSegment(bdlx)){
String dtkssj = Utils.getkssjTime(scheduleMap,analysisDate);
String dtjssj = Utils.getjssjTime(scheduleMap,analysisDate);
List<Map<String,Object>> missCardlist = needRecordMissCardList.stream().filter(e-> DateUtil.getTime(dtkssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) <=0 && DateUtil.getTime(dtjssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) >=0).collect(Collectors.toList());
List<Map<String,Object>> abnormal = abnormalList.stream().filter(e-> DateUtil.getTime(dtkssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) <=0 && DateUtil.getTime(dtjssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) >=0).collect(Collectors.toList());
List<Map<String,Object>> missCardlist = Utils.getAbnormalListBySchedule(scheduleMap,needRecordMissCardList,analysisDate);
List<Map<String,Object>> abnormal = Utils.getAbnormalListBySchedule(scheduleMap,abnormalList,analysisDate);
if (missCardlist.size() > 0){
String edfzs = Util.null2String(scheduleMap.get("edfzs")).equals("")?String.valueOf(Double.valueOf(scheduleMap.get("edxss").toString())*60):Util.null2String(scheduleMap.get("edfzs"));
lateParam.put("time",edfzs);
lateParam.put("workfor",Utils.getWorkFor(bdlx));
List<Map<String,Object>> items = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(lateParam)).get("attendanceItems");
if (items.size() > 0){
//去除异常
abnormalList = abnormalList.stream().filter(e->{
for (Map<String,Object> map:abnormal){
if (map.get("bdlx").equals(e.get("bdlx")) && map.get("pointTime").equals(e.get("pointTime"))){
@ -103,13 +104,25 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe
forgotMap.put("itemduration",scheduleMap.get("edts"));
}else if (hsdw.equals(AccountingUnitEnum.MINUTES.getKey())){
forgotMap.put("itemduration",edfzs);
}else if (hsdw.equals(AccountingUnitEnum.ONCE.getKey())){
forgotMap.put("itemduration",1);
}
for (Map<String,Object> missCard: missCardlist){
if ((boolean)missCard.get("record")){
forgotMap.put("record",missCard.get("record"));
forgotMap.put("pointTime",missCard.get("pointTime"));
forgotMap.put("pointType",missCard.get("pointType"));
forgotMap.put("bdlx",missCard.get("bdlx"));
}
}
forgotMap.put("hsdw",hsdw);
forgotMap.put("kczgsc",items.get(0).get("kczgsc"));
forgotMap.put("betweenMinutes",edfzs);
forgotMap.put("hsl",items.get(0).get("hsl"));
forgotMap.put("classStartTime",dtkssj);
forgotMap.put("classEndTime",dtjssj);
//合并异常
absenteeismList.add(forgotMap);
}
}

@ -20,6 +20,9 @@ import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.time.ZoneOffset;
import java.util.*;
import java.util.stream.Collectors;
@ -388,12 +391,18 @@ public class ShiftServiceImpl extends Service implements ShiftService {
map.put("bcxx", punchDate.compareTo(e.getKey()) != 0 ? "0" : shiftId);
map.put("bcsdxx", punchDate.compareTo(e.getKey()) != 0 ? "": bcsdxx);
if (resultList.size()>0){
map.put("edsc",Util.null2String(resultList.get(0).get("edsc")));
map.put("sfdx",Util.null2String(resultList.get(0).get("sfdx")));
map.put("zddxfz",Util.null2String(resultList.get(0).get("zddxfz")));
map.put("dxhs",Util.null2String(resultList.get(0).get("dxhs")));
map.putAll(resultList.get(0));
// map.put("edsc",Util.null2String(resultList.get(0).get("edsc")));
// map.put("sfdx",Util.null2String(resultList.get(0).get("sfdx")));
// map.put("zddxfz",Util.null2String(resultList.get(0).get("zddxfz")));
// map.put("dxhs",Util.null2String(resultList.get(0).get("dxhs")));
// map.put("sfxx",resultList.get(0).get("sfxx"));
// map.put("btgz",resultList.get(0).get("btgz"));
// map.put("xxbdkzdjb",resultList.get(0).get("xxbdkzdjb"));
map.put("edts",new BigDecimal(overtimePlan.get("jbsc").toString()).divide(new BigDecimal(resultList.get(0).get("edsc").toString(),new MathContext(2, RoundingMode.HALF_UP))));
}else {
map.put("edsc","0");
map.put("edts","1");
}
map.put("bdlx", ClassSegmentTypeEnum.OVERTIME_PLAN.getKey());
map.put("dtkssj",overtimePlan.get("kssj"));

@ -48,8 +48,8 @@ public class AttendanceanalysisAction {
try {
Map<String,Object> paramMap = ParamUtil.request2Map(request);
// Map<String,Object> paramMap = Maps.newHashMap();
// paramMap.put("startDate","2024-06-01");
// paramMap.put("endDate","2024-06-30");
// paramMap.put("startDate","2024-07-18");
// paramMap.put("endDate","2024-07-18");
// paramMap.put("userIds","81");
String startDate = Util.null2String(paramMap.get("startDate"));

@ -277,15 +277,12 @@ public class AttendanceAnalysisWrapper extends Service {
recordAbnormalParam.put("evectionItems", evectionDataMap.get("evectionItems"));
List<Map<String, Object>> abnormalClockInList = updateAttendanceResultWrapper.recordAbnormalClockIn(recordAbnormalParam);
//需要记录的异常卡点
List<Map<String, Object>> needRecordAbnormalClockInList = abnormalClockInList.stream().filter(e -> (boolean) e.get("record")).collect(Collectors.toList());
//不需要记录的异常卡点
List<Map<String, Object>> notRecordAbnormalClockInList = abnormalClockInList.stream().filter(e -> !(boolean) e.get("record")).collect(Collectors.toList());
/**
*
*/
recordAbnormalParam.put("abnormalClockInList", needRecordAbnormalClockInList);
recordAbnormalParam.put("notRecordAbnormalClockInList", notRecordAbnormalClockInList);
recordAbnormalParam.put("abnormalClockInList", abnormalClockInList);
//recordAbnormalParam.put("notRecordAbnormalClockInList", notRecordAbnormalClockInList);
String ifnotWork = Util.null2String(allowanceMap.get("ifnotWork"));
if (!"".equals(ifnotWork)) {
//次日免班
@ -308,6 +305,7 @@ public class AttendanceAnalysisWrapper extends Service {
List<Map<String, Object>> abnormalClockInListByAskForLeave = (List<Map<String, Object>>) vactionMap.get("abnormalClockInList");
List<Map<String, Object>> vactionList = (List<Map<String, Object>>) vactionMap.get("resultList");
recordAbnormalParam.put("offsetAskForLeaveAnomaly", vactionMap.get("offsetAskForLeaveAnomaly"));
recordAbnormalParam.put("askForLeaveToOffsetAbnomaly",vactionMap.get("askForLeaveToOffsetAbnomaly"));
log.debug("请假后消除的异常 : [{}]", vactionMap.get("offsetAskForLeaveAnomaly"));
/**
*
@ -320,6 +318,7 @@ public class AttendanceAnalysisWrapper extends Service {
recordAbnormalParam.put("abnormalClockInList", abnormalClockInListByEvction);
recordAbnormalParam.put("offsetEvectionAnomaly", recordEvection.get("offsetEvectionAnomaly"));
recordAbnormalParam.put("evectionToOffsetAbnomaly",recordEvection.get("evectionToOffsetAbnomaly"));
log.debug("出差外出后消除的异常 : [{}]", recordEvection.get("offsetEvectionAnomaly"));
/**
*

@ -15,6 +15,9 @@ import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@ -102,8 +105,12 @@ public class UpdateAttendanceResultWrapper extends Service {
List<Map<String,Object>> iforgetClockIn = forgetClockInService.forgetClockIn(missCardParams);
if (iforgetClockIn.size() >0){
iforgetClockIn.get(0).put("pointTime",pointTime);
iforgetClockIn.get(0).put("pointType",clcokInTimedto.getPointType());
iforgetClockIn.get(0).put("bdlx",classInfo.get("bdlx"));
iforgetClockIn.get(0).put("record",clcokInTimedto.isRecord());
if (!clcokInTimedto.isRecord()){
iforgetClockIn.get(0).put("resourceClassTime",clcokInTimedto.getResourceClockPointDTO().getClassTime());
}
iforgetClockIn.get(0).put("clcokInTimeData",clcokInTimeData);
resultList.add(iforgetClockIn.get(0));
}
@ -126,8 +133,12 @@ public class UpdateAttendanceResultWrapper extends Service {
List<Map<String,Object>> ifBeLate = beLateService.beLate(beLateParams);
if (ifBeLate.size() > 0){
ifBeLate.get(0).put("pointTime",pointTime);
ifBeLate.get(0).put("pointType",clcokInTimedto.getPointType());
ifBeLate.get(0).put("bdlx",classInfo.get("bdlx"));
ifBeLate.get(0).put("record",clcokInTimedto.isRecord());
if (!clcokInTimedto.isRecord()){
ifBeLate.get(0).put("resourceClassTime",clcokInTimedto.getResourceClockPointDTO().getClassTime());
}
ifBeLate.get(0).put("clcokInTimeData",clcokInTimeData);
resultList.add(ifBeLate.get(0));
}
@ -149,8 +160,12 @@ public class UpdateAttendanceResultWrapper extends Service {
List<Map<String,Object>> ifLeaveEarly = beLateService.leaveEarly(leaveEarlyParams);
if (ifLeaveEarly.size() > 0){
ifLeaveEarly.get(0).put("pointTime",pointTime);
ifLeaveEarly.get(0).put("pointType",clcokInTimedto.getPointType());
ifLeaveEarly.get(0).put("bdlx",classInfo.get("bdlx"));
ifLeaveEarly.get(0).put("record",clcokInTimedto.isRecord());
if (!clcokInTimedto.isRecord()){
ifLeaveEarly.get(0).put("resourceClassTime",clcokInTimedto.getResourceClockPointDTO().getClassTime());
}
ifLeaveEarly.get(0).put("clcokInTimeData",clcokInTimeData);
resultList.add(ifLeaveEarly.get(0));
}
@ -198,6 +213,8 @@ public class UpdateAttendanceResultWrapper extends Service {
List<Map<String,Object>> abnormalClockInList = (List<Map<String,Object>>)params.get("abnormalClockInList");
//请假抵消异常
List<Map<String,Object>> offsetAskForLeaveAnomaly = Lists.newArrayList();
//请假-抵消异常
Map<Map<String, Object>,List<Map<String, Object>>> askForLeaveToOffsetAbnomaly = Maps.newHashMap();
Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> resultList = Lists.newArrayList();
@ -216,6 +233,8 @@ public class UpdateAttendanceResultWrapper extends Service {
Map<String,Object> askForLeaveItem = askForLeaveItems.get(askForLeaveList.get(i).get("jqlx"));
//自动移除时间区间内的非工作时长
String zdycbcndfgzsd = Util.null2String(askForLeaveItem.get("zdycbcndfgzsd"));
//半天规则
String btgz = Util.null2String(scheduleResult.get(0).get("btgz"));
//同一天可抵消多个异常
String tybcndbjlhbjs = Util.null2String(askForLeaveItem.get("tybcndbjlhbjs"));
//作用时段
@ -237,16 +256,30 @@ public class UpdateAttendanceResultWrapper extends Service {
param.put("zysd",zysd);
param.put("scheduleResult",scheduleResult);
param.put("analysisDate",analysisDate);
param.put("askForLeaveItem",askForLeaveItem);
double itemduration = 0;
if ("".equals(Util.null2String(askForLeaveList.get(i).get("kssj"))) || "".equals(Util.null2String(askForLeaveList.get(i).get("jssj")))){
//弹性请假,半天请假
if (CheckBoxEnum.CHECKED.getKey().equals(btj)){
if (CheckBoxEnum.CHECKED.getKey().equals(btj) && (btgz.equals(HalfDayRuleREnum.BY_CLASS_SET.getKey()) || btgz.equals(HalfDayRuleREnum.FIXED_DURATION.getKey()))){
//半天请假
askForLeaveService.askForLeaveByHalfDay(param);
}else if (!"".equals(qjsc)){
Map<String,Object> handleMap = askForLeaveService.askForLeaveByHalfDay(param);
itemduration = Double.valueOf(handleMap.get("itemduration").toString());
abnormalClockInList = (List<Map<String,Object>>)handleMap.get("abnormalClockInList");
offsetAskForLeaveAnomaly.addAll((List<Map<String,Object>>)handleMap.get("offsetAskForLeaveAnomaly"));
resultMap.put("itemduration",itemduration);
askForLeaveToOffsetAbnomaly.put(askForLeaveList.get(i),(List<Map<String,Object>>)handleMap.get("offsetAskForLeaveAnomaly"));
}else if (!"".equals(qjsc) || (CheckBoxEnum.CHECKED.getKey().equals(btj) && (btgz.equals(HalfDayRuleREnum.HALF_TOTAL_DURATION.getKey()) || btgz.equals(HalfDayRuleREnum.HALF_RATED_DURATION.getKey())))){
if (CheckBoxEnum.CHECKED.getKey().equals(btj)){
if (btgz.equals(HalfDayRuleREnum.HALF_TOTAL_DURATION.getKey())){
qjsc = new BigDecimal(scheduleResult.get(0).get("zgzsc").toString()).divide(new BigDecimal(2),new MathContext(2, RoundingMode.HALF_UP)).toString();
}else{
qjsc = new BigDecimal(scheduleResult.get(0).get("edsc").toString()).divide(new BigDecimal(2),new MathContext(2, RoundingMode.HALF_UP)).toString();
}
}
qjscMinute = "".equals(qjsc)?0:Double.valueOf(Math.ceil(Double.valueOf(qjsc)*60)).intValue();
//时长请假
itemduration = Utils.getItemduration(hsl,hsdw,qjscMinute,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(hsl,hsdw,qjscMinute,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
if (!sffzcx.equals(CheckBoxEnum.CHECKED.getKey())){
resultMap.put("itemduration",itemduration);
@ -259,6 +292,7 @@ public class UpdateAttendanceResultWrapper extends Service {
abnormalClockInList =(List<Map<String,Object>>)map1.get("abnormalClockInList");
List<Map<String,Object>> offsetAskForLeaveAnomalyList = (List<Map<String,Object>>)map1.get("offsetAskForLeaveAnomaly");
offsetAskForLeaveAnomaly.addAll(offsetAskForLeaveAnomalyList);
askForLeaveToOffsetAbnomaly.put(askForLeaveList.get(i),offsetAskForLeaveAnomalyList);
//按时长请假,将标记请假作用的时段上的异常 按标准逻辑进行冲销如果冲销后还有多余时长如请假时长为1.5小时但员工当天有两个时段上各有不到30分钟的异常此时每个时段0.5小时需要冲销多出来的0.5小时放哪里,放到异常多的那个时段上
@ -280,7 +314,7 @@ public class UpdateAttendanceResultWrapper extends Service {
}
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(askForLeaveItem,bdlx);
if (item != null){
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),time,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),time,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("itemduration",itemduration);
itemMap.put("item",item.get("keyid"));
@ -293,7 +327,7 @@ public class UpdateAttendanceResultWrapper extends Service {
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(askForLeaveItem,ClassSegmentTypeEnum.WORK_TIME.getKey());
if (item != null){
Map<String, Object> itemMap = Maps.newHashMap();
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),qjscMinute,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),qjscMinute,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
itemMap.put("itemduration",itemduration);
itemMap.put("item",item.get("keyid"));
resultList.add(itemMap);
@ -312,13 +346,14 @@ public class UpdateAttendanceResultWrapper extends Service {
timeMinutes = qjscMinute;
}
log.debug("recordAskForLeave timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
param.put("kssj",kssj);
param.put("jssj",jssj);
if (abnormalClockInList.size()>0){
Map<String,Object> map1 = askForLeaveService.askForLeaveByTime(param);
abnormalClockInList = (List<Map<String,Object>>)map1.get("abnormalClockInList");
offsetAskForLeaveAnomaly.addAll((List<Map<String,Object>>)map1.get("offsetAskForLeaveAnomaly"));
askForLeaveToOffsetAbnomaly.put(askForLeaveList.get(i),(List<Map<String,Object>>)map1.get("offsetAskForLeaveAnomaly"));
}
if (sffzcx.equals(CheckBoxEnum.CHECKED.getKey())){
//按时间区间请假时 将连接的同一类型时段设置一种假别 计算出分钟时长后按核算量算出核算时长及单位即可
@ -329,7 +364,7 @@ public class UpdateAttendanceResultWrapper extends Service {
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(askForLeaveItem,bdlx);
if (item != null){
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes,AccountingUnitEnum.MINUTES));
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString())));
itemMap.put("item",item.get("keyid"));
resultList.add(itemMap);
}
@ -342,6 +377,7 @@ public class UpdateAttendanceResultWrapper extends Service {
map.put("resultList",resultList);
map.put("abnormalClockInList",abnormalClockInList);
map.put("offsetAskForLeaveAnomaly",offsetAskForLeaveAnomaly);
map.put("askForLeaveToOffsetAbnomaly",askForLeaveToOffsetAbnomaly);
return map;
}
@ -364,8 +400,8 @@ public class UpdateAttendanceResultWrapper extends Service {
List<Map<String,Object>> abnormalClockInList = (List<Map<String,Object>>)params.get("abnormalClockInList");
//外出抵消异常
List<Map<String,Object>> offsetEvectionAnomaly = Lists.newArrayList();
//卡点
List<ClockPointDTO> clcokInTimeData = (List<ClockPointDTO>)params.get("clcokInTimeData");
//外出-抵消异常
Map<Map<String, Object>,List<Map<String,Object>>> evectionToOffsetAbnomaly = Maps.newHashMap();
Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> resultList = Lists.newArrayList();
@ -413,7 +449,7 @@ public class UpdateAttendanceResultWrapper extends Service {
evectionService.evectionByHalfDay(param);
}else if (!"".equals(ccsc)){
//时长出差
itemduration = Utils.getItemduration(hsl,hsdw,ccscMinute,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(hsl,hsdw,ccscMinute,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
if (!sffzcx.equals(CheckBoxEnum.CHECKED.getKey())){
resultMap.put("itemduration",itemduration);
}
@ -425,6 +461,7 @@ public class UpdateAttendanceResultWrapper extends Service {
abnormalClockInList = (List<Map<String,Object>>)map1.get("abnormalClockInList");
List<Map<String,Object>> offsetEvectionAnomalyList = (List<Map<String,Object>>)map1.get("offsetEvectionAnomaly");
offsetEvectionAnomaly.addAll(offsetEvectionAnomalyList);
evectionToOffsetAbnomaly.put(evectionList.get(i),offsetEvectionAnomalyList);
//按时长请假,将标记请假作用的时段上的异常 按标准逻辑进行冲销如果冲销后还有多余时长如请假时长为1.5小时但员工当天有两个时段上各有不到30分钟的异常此时每个时段0.5小时需要冲销多出来的0.5小时放哪里,放到异常多的那个时段上
//有几个抵消异常计入几个请假考勤项目
@ -445,7 +482,7 @@ public class UpdateAttendanceResultWrapper extends Service {
}
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(evectionItem,bdlx);
if (item != null){
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),time,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),time,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("itemduration",itemduration);
itemMap.put("item",item.get("keyid"));
@ -459,7 +496,7 @@ public class UpdateAttendanceResultWrapper extends Service {
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(evectionItem,ClassSegmentTypeEnum.WORK_TIME.getKey());
if (item != null){
Map<String, Object> itemMap = Maps.newHashMap();
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),ccscMinute,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),ccscMinute,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
itemMap.put("itemduration",itemduration);
itemMap.put("item",item.get("keyid"));
resultList.add(itemMap);
@ -479,13 +516,14 @@ public class UpdateAttendanceResultWrapper extends Service {
timeMinutes = ccscMinute;
}
log.debug("recordEvection timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES);
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
param.put("kssj",kssj);
param.put("jssj",jssj);
if (abnormalClockInList.size()>0){
Map<String,Object> map1 = evectionService.evectionByTime(param);
abnormalClockInList = (List<Map<String,Object>>)map1.get("abnormalClockInList");
offsetEvectionAnomaly.addAll((List<Map<String,Object>>)map1.get("offsetEvectionAnomaly"));
evectionToOffsetAbnomaly.put(evectionList.get(i),(List<Map<String,Object>>)map1.get("offsetEvectionAnomaly"));
}
if (sffzcx.equals(CheckBoxEnum.CHECKED.getKey())){
@ -497,7 +535,7 @@ public class UpdateAttendanceResultWrapper extends Service {
Map<String,Object> item = CommonUtil.assembleAskForOrEvectionItem(evectionItem,bdlx);
if (item != null){
Map<String, Object> itemMap = Maps.newHashMap();
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes,AccountingUnitEnum.MINUTES));
itemMap.put("itemduration",Utils.getItemduration(Double.valueOf(Util.null2String(item.get("hsl"))),Util.null2String(item.get("hsdw")),betweenTimes,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString())));
itemMap.put("item",item.get("keyid"));
resultList.add(itemMap);
}
@ -510,6 +548,7 @@ public class UpdateAttendanceResultWrapper extends Service {
map.put("resultList",resultList);
map.put("abnormalClockInList",abnormalClockInList);
map.put("offsetEvectionAnomaly",offsetEvectionAnomaly);
map.put("evectionToOffsetAbnomaly",evectionToOffsetAbnomaly);
return map;
}

@ -93,7 +93,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
}
if (personGroupOrganizationList != null){
Set<String> personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet());
sql = "select mainid,empid,filters,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
sql = "select mainid,empid,filters,sqltj,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);

@ -91,7 +91,7 @@ public class GetWorkHoursItemByPersonCmd extends AbstractCommonCommand<Map<Strin
}
if (personGroupOrganizationList != null){
Set<String> personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet());
sql = "select mainid,empid,filters,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
sql = "select mainid,empid,filters,bdate,edate,sqltj from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
log.debug("query personGroupData : {}",sql);
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);

@ -165,7 +165,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
dataTable = DbTools.getSqlToList(querySql);
}
String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.bdate,b.edate from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?";
String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.sqltj,b.bdate,b.edate from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?";
List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql,userId);
personnelGrouping = personnelGrouping.stream().filter(e -> DateUtil.getTime(endTime).compareTo(DateUtil.getTime(e.get("bdate").toString())) >=0 && (Util.null2String(e.get("edate")).equals("") || DateUtil.getTime(startTime).compareTo(DateUtil.getTime(e.get("edate").toString())) <=0)).collect(Collectors.toList());
@ -177,6 +177,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
String list_type = Util.null2String(data.get("list_type"));
String bdate = Util.null2String(data.get("bdate"));
String edate = Util.null2String(data.get("edate"));
String sqltj = Util.null2String(data.get("sqltj"));
String date = "";
if (DateUtil.getTime(startTime).compareTo(DateUtil.getTime(bdate)) >= 0){
date = startTime;
@ -205,6 +206,17 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
String hrmId = Util.null2String(dataMap.get("id"));
userIdMap.put(hrmId,date);
}
}else if ("2".equals(list_type) && !"".equals(sqltj)){
sqltj = sqltj.replace("","select");
sqltj = sqltj.replace("","and");
sqltj = sqltj.replace("","or");
sqltj = sqltj.replace("","join");
log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
userIdMap.put(hrmId,date);
}
}
}
@ -430,7 +442,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
*/
public List<String> getHaveResourceIds(String userId,List<String> resourceIds,String date){
String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.bdate,b.edate from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?";
String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.bdate,b.edate,b.sqltj from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?";
List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql,userId);
personnelGrouping = personnelGrouping.stream().filter(e -> DateUtil.getTime(date).compareTo(DateUtil.getTime(e.get("bdate").toString())) >=0 && (Util.null2String(e.get("edate")).equals("") || DateUtil.getTime(date).compareTo(DateUtil.getTime(e.get("edate").toString())) <=0)).collect(Collectors.toList());
Set<String> userIds = PersongroupCommonUtil.getUserIdsByPersonnelGrouping(personnelGrouping);

@ -75,7 +75,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
List<Map<String,Object>> personGroupList = Lists.newArrayList();
//查人员分组
String currentTime = DateUtil.getCurrentDate();
String queryryfz = "select a.mainid,a.empid,a.filters,a.bdate,a.edate from uf_ryqz_dt1 a,(select pbdxryfz from uf_pbjg where dxlx=1 group by pbdxryfz) b where a.mainid =b.pbdxryfz and a.bdate <= '"+currentTime+"'";
String queryryfz = "select a.mainid,a.empid,a.filters,a.bdate,a.edate,a.sqltj from uf_ryqz_dt1 a,(select pbdxryfz from uf_pbjg where dxlx=1 group by pbdxryfz) b where a.mainid =b.pbdxryfz and a.bdate <= '"+currentTime+"'";
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(queryryfz);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null);
querySqlbyPbdx = sql +conditions + " and pbdxryfz in (";
@ -218,7 +218,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
List<Map<String,Object>> dataList = Lists.newArrayList();
//查人员分组
String currentTime = DateUtil.getCurrentDate();
String queryryfz = "select a.mainid,a.empid,a.filters,a.bdate,a.edate from uf_ryqz_dt1 a,(select pbdxryfz from uf_pbjg where dxlx=1 group by pbdxryfz) b where a.mainid =b.pbdxryfz and a.bdate <= '"+currentTime+"'";
String queryryfz = "select a.mainid,a.empid,a.filters,a.bdate,a.edate,a.sqltj from uf_ryqz_dt1 a,(select pbdxryfz from uf_pbjg where dxlx=1 group by pbdxryfz) b where a.mainid =b.pbdxryfz and a.bdate <= '"+currentTime+"'";
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(queryryfz);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null);
String querySqlbyPbdx = sql +conditions + " and pbdxryfz in (";

@ -356,6 +356,7 @@ public class PersongroupCommonUtil {
}
String empid = Util.null2String(data.get("empid"));
String filters = Util.null2String(data.get("filters"));
String sqltj = Util.null2String(data.get("sqltj"));
log.debug(" empid : {},userId : {}",empid,userId);
if (empid.equals(userId)){
personnelGroupIds.add(e.getKey());
@ -377,6 +378,19 @@ public class PersongroupCommonUtil {
personnelGroupIds.add(e.getKey());
}
}
}else if (!"".equals(sqltj)){
sqltj = sqltj.replace("","select");
sqltj = sqltj.replace("","and");
sqltj = sqltj.replace("","or");
sqltj = sqltj.replace("","join");
log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
if (hrmId.equals(userId)){
personnelGroupIds.add(e.getKey());
}
}
}
}
}
@ -397,6 +411,7 @@ public class PersongroupCommonUtil {
String empid = Util.null2String(data.get("empid"));
String filters = Util.null2String(data.get("filters"));
String list_type = Util.null2String(data.get("list_type"));
String sqltj = Util.null2String(data.get("sqltj"));
if (PersonGroupListTypeEnum.PERSON.getKey().equals(list_type) && !"".equals(empid)){
//人员清单
userIds.add(empid);
@ -416,6 +431,17 @@ public class PersongroupCommonUtil {
String hrmId = Util.null2String(dataMap.get("id"));
userIds.add(hrmId);
}
}else if (PersonGroupListTypeEnum.SQLCONDITION.getKey().equals(list_type) && !"".equals(sqltj)){
sqltj = sqltj.replace("","select");
sqltj = sqltj.replace("","and");
sqltj = sqltj.replace("","or");
sqltj = sqltj.replace("","join");
log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
userIds.add(hrmId);
}
}
}
log.debug("userIds size :[{}]",userIds.size());

@ -7,7 +7,8 @@ import com.finance.toolkit.BaseEnum;
*/
public enum PersonGroupListTypeEnum implements BaseEnum {
PERSON("0","人员清单"),
CONDITION("1","条件清单");
CONDITION("1","条件清单"),
SQLCONDITION("2","sql条件");
private String key;
private String value;

@ -236,7 +236,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
* @returnid-id
*/
public Map<String,Set<String>> getPersonGroupUserIds(Set<String> personOrganzationIds){
String sql = "select b.mainid,b.empid,b.filters,b.bdate,b.edate,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid in ("+String.join(",",personOrganzationIds)+")";
String sql = "select b.mainid,b.empid,b.filters,b.sqltj,b.bdate,b.edate,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid in ("+String.join(",",personOrganzationIds)+")";
List<Map<String,Object>> personGroupDataList = DbTools.getSqlToList(sql);
@ -246,6 +246,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
String empid = Util.null2String(personGroupData.get("empid"));
String filters = Util.null2String(personGroupData.get("filters"));
String list_type = Util.null2String(personGroupData.get("list_type"));
String sqltj = Util.null2String(personGroupData.get("sqltj"));
Set<String> userIds = personGroupUserIds.get(id);
if (userIds == null){
@ -274,6 +275,17 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
String seclevel = Util.null2String(dataMap.get("seclevel"));
userIds.add(hrmId);
}
}else if ("2".equals(list_type) && !"".equals(sqltj)){
sqltj = sqltj.replace("","select");
sqltj = sqltj.replace("","and");
sqltj = sqltj.replace("","or");
sqltj = sqltj.replace("","join");
log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
userIds.add(hrmId);
}
}
}

@ -142,7 +142,7 @@ public class CommonUtil {
}
if (personGroupOrganizationList != null && dataIds.size() ==0){
Set<String> personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet());
sql = "select mainid,empid,filters,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
sql = "select mainid,empid,filters,bdate,edate,sqltj from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
log.debug("query personGroupData : {}",sql);
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);
@ -227,7 +227,7 @@ public class CommonUtil {
}
if (personGroupOrganizationList != null){
Set<String> personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet());
sql = "select mainid,empid,filters,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
sql = "select mainid,empid,filters,bdate,edate,sqltj from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")";
log.debug("query personGroupData : {}",sql);
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);
@ -484,7 +484,7 @@ public class CommonUtil {
* @return id
*/
public static Set<String> getEmpGroupUserIds(String empGroupId){
String sql = "select b.mainid,b.empid,b.filters,b.bdate,b.edate,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid = " + empGroupId;
String sql = "select b.mainid,b.empid,b.filters,b.bdate,b.edate,a.list_type,b.sqltj from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid = " + empGroupId;
List<Map<String,Object>> personGroupDataList = DbTools.getSqlToListKeySmallLetter(sql);
@ -494,6 +494,7 @@ public class CommonUtil {
String empid = Util.null2String(personGroupData.get("empid"));
String filters = Util.null2String(personGroupData.get("filters"));
String list_type = Util.null2String(personGroupData.get("list_type"));
String sqltj = Util.null2String(personGroupData.get("sqltj"));
if ("0".equals(list_type) && !"".equals(empid)){
//人员清单
@ -515,6 +516,17 @@ public class CommonUtil {
String seclevel = Util.null2String(dataMap.get("seclevel"));
empIdList.add(hrmId);
}
}else if ("2".equals(list_type) && !"".equals(sqltj)){
sqltj = sqltj.replace("","select");
sqltj = sqltj.replace("","and");
sqltj = sqltj.replace("","or");
sqltj = sqltj.replace("","join");
log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
empIdList.add(hrmId);
}
}
}
return empIdList;
@ -526,7 +538,7 @@ public class CommonUtil {
* @return
*/
public static Map<String, Object> getEmpGroupUserInfo(String empGroupId){
String sql = "select b.mainid,b.empid,b.filters,b.bdate,b.edate,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid = " + empGroupId;
String sql = "select b.mainid,b.empid,b.filters,b.bdate,b.edate,a.list_type,b.sqltj from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid = " + empGroupId;
List<Map<String,Object>> personGroupDataList = DbTools.getSqlToListKeySmallLetter(sql);
Map<String, Object> empGroupUserInfo = new HashMap<>();
@ -539,6 +551,7 @@ public class CommonUtil {
String edate = Util.null2String(personGroupData.get("edate"));
String filters = Util.null2String(personGroupData.get("filters"));
String list_type = Util.null2String(personGroupData.get("list_type"));
String sqltj = Util.null2String(personGroupData.get("sqltj"));
if ("0".equals(list_type) && !"".equals(empid)){
//人员清单
@ -579,6 +592,31 @@ public class CommonUtil {
empGroupUserInfo.put(hrmId, existForceTimeItemList);
}
}
}else if ("2".equals(list_type) && !"".equals(sqltj)){
sqltj = sqltj.replace("","select");
sqltj = sqltj.replace("","and");
sqltj = sqltj.replace("","or");
sqltj = sqltj.replace("","join");
log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
if (empGroupUserInfo.get(hrmId) == null) {
forceTimeItemList = new ArrayList<>();
forceTimeItem = new HashMap<>();
forceTimeItem.put("startDate", bdate);
forceTimeItem.put("endDate", edate);
forceTimeItemList.add(forceTimeItem);
empGroupUserInfo.put(hrmId, forceTimeItemList);
} else {
List<Map<String, Object>> existForceTimeItemList = (List<Map<String, Object>>) empGroupUserInfo.get(hrmId);
forceTimeItem = new HashMap<>();
forceTimeItem.put("startDate", bdate);
forceTimeItem.put("endDate", edate);
existForceTimeItemList.add(forceTimeItem);
empGroupUserInfo.put(hrmId, existForceTimeItemList);
}
}
}
}
return empGroupUserInfo;

@ -4,6 +4,7 @@ import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockP
import com.engine.jucailinkq.attendance.enums.*;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
@ -251,57 +252,64 @@ public class Utils<T> {
* @param hsdw
* @param duration
* @param unit
* @param edsc
* @return
*/
public static double getItemduration(double hsl, String hsdw,int duration, AccountingUnitEnum unit){
public static double getItemduration(double hsl, String hsdw,double duration, AccountingUnitEnum unit,double edsc){
double itemDuration = 0.0;
BigDecimal durationBig = new BigDecimal(duration);
BigDecimal hslBig = new BigDecimal(hsl);
if (AccountingUnitEnum.DAY.getKey().equals(hsdw) || AccountingUnitEnum.ONCE.getKey().equals(hsdw)){
itemDuration = hsl;
}else if (AccountingUnitEnum.HOUR.getKey().equals(hsdw)){
if (AccountingUnitEnum.DAY.getKey().equals(hsdw)){
double durationDay = 0;
if (unit.equals(AccountingUnitEnum.MINUTES)){
double durationHour = duration/60.0;
// if (duration%60 > 0){
// durationHour = durationHour +1;
// }
durationBig = new BigDecimal(durationHour);
if ((durationHour/hsl) > Math.floor(durationHour/hsl)){
// (durationHour/hsl)*hsl+hsl
durationBig = new BigDecimal(Math.floor(durationHour/hsl));
itemDuration = durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
durationDay = Utils.divide(Utils.divide(duration,60),edsc);
}else if (unit.equals(AccountingUnitEnum.HOUR)){
if ((duration/hsl) > Math.floor(duration/hsl)){
durationBig = new BigDecimal(Math.floor(duration/hsl));
itemDuration=durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
durationDay = Utils.divide(duration,edsc);
}else if (unit.equals(AccountingUnitEnum.DAY)){
durationDay=duration;
}
durationBig = new BigDecimal(durationDay);
if (Double.compare(durationDay/hsl,Math.floor(durationDay/hsl)) > 0){
durationBig = new BigDecimal(Math.floor(durationDay/hsl));
itemDuration = durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
}else if (AccountingUnitEnum.ONCE.getKey().equals(hsdw)){
itemDuration=hsl;
}else if (AccountingUnitEnum.HOUR.getKey().equals(hsdw)){
double durationHour = 0;
if (unit.equals(AccountingUnitEnum.MINUTES)){
durationHour = duration/60.0;
}else if (unit.equals(AccountingUnitEnum.HOUR)){
durationHour = duration;
}else if (unit.equals(AccountingUnitEnum.DAY)){
durationHour = duration*edsc;
}
durationBig = new BigDecimal(durationHour);
if ((durationHour/hsl) > Math.floor(durationHour/hsl)){
// (durationHour/hsl)*hsl+hsl
durationBig = new BigDecimal(Math.floor(durationHour/hsl));
itemDuration = durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
}else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)){
double durationMinute = 0;
if (unit.equals(AccountingUnitEnum.MINUTES)){
if ((duration/hsl) > Math.floor(duration/hsl)){
durationBig = new BigDecimal(Math.floor(duration/hsl));
itemDuration=durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
durationMinute = duration;
}else if (unit.equals(AccountingUnitEnum.HOUR)){
int durationMinute = duration*60;
durationBig = new BigDecimal(durationMinute);
if ((durationMinute/hsl) > Math.floor(durationMinute/hsl)){
durationBig = new BigDecimal(Math.floor(durationMinute/hsl));
itemDuration=durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
durationMinute = duration*60;
}else if (unit.equals(AccountingUnitEnum.DAY)){
durationMinute = duration*24*60;
}
durationBig = new BigDecimal(durationMinute);
if ((duration/hsl) > Math.floor(duration/hsl)){
durationBig = new BigDecimal(Math.floor(duration/hsl));
itemDuration=durationBig.multiply(hslBig).add(hslBig,new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}else {
itemDuration = durationBig.multiply(hslBig).divide(hslBig,BigDecimal.ROUND_DOWN).doubleValue();
}
}
return itemDuration;
@ -703,7 +711,7 @@ public class Utils<T> {
*/
public static double subtract(double value1,double value2){
return new BigDecimal(value1).subtract(new BigDecimal(value2),new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
return new BigDecimal(String.valueOf(value1)).subtract(new BigDecimal(String.valueOf(value2)),new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}
/**
@ -714,7 +722,7 @@ public class Utils<T> {
*/
public static double add(double value1,double value2){
return new BigDecimal(value1).add(new BigDecimal(value2),new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
return new BigDecimal(String.valueOf(value1)).add(new BigDecimal(String.valueOf(value2)),new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}
/**
@ -725,7 +733,7 @@ public class Utils<T> {
*/
public static double multiply(double value1,double value2){
return new BigDecimal(value1).multiply(new BigDecimal(value2),new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
return new BigDecimal(String.valueOf(value1)).multiply(new BigDecimal(String.valueOf(value2)),new MathContext(BigDecimal.ROUND_HALF_UP)).doubleValue();
}
/**
@ -734,9 +742,9 @@ public class Utils<T> {
* @param value2
* @return
*/
public static double divide(double value1, int value2){
public static double divide(double value1, double value2){
return new BigDecimal(value1).divide(new BigDecimal(value2), 2, RoundingMode.HALF_UP).doubleValue();
return new BigDecimal(String.valueOf(value1)).divide(new BigDecimal(String.valueOf(value2)), 2, RoundingMode.HALF_UP).doubleValue();
}
/**
@ -912,6 +920,7 @@ public class Utils<T> {
return jssj;
}
/**
*
* @param classSegmentType
@ -987,5 +996,93 @@ public class Utils<T> {
return clockPointDTOList;
}
/**
*
* @param scheduleMap
* @param abnormalScheduleList
* @return
*/
public static List<Map<String,Object>> getAbnormalListBySchedule(Map<String, Object> scheduleMap,List<Map<String,Object>> abnormalScheduleList,String analysisDate){
String kssj = getkssjTime(scheduleMap,analysisDate);
String jssj = getjssjTime(scheduleMap,analysisDate);
List<Map<String,Object>> resultList = abnormalScheduleList.stream().filter(e->{
ClockPointEnum pointType = (ClockPointEnum)e.get("pointType");
String time = "";
if (pointType == ClockPointEnum.END){
time = jssj;
}else if (pointType == ClockPointEnum.START){
time = kssj;
}
if (DateUtil.getTime(time).compareTo(DateUtil.getTime(e.get("pointTime").toString())) == 0){
return true;
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) <0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(e.get("pointTime").toString())) >0){
return true;
}else {
return false;
}
}).collect(Collectors.toList());
return resultList;
}
/**
*
* @param scheduleMapList
* @param abnormalList
* @return
*/
public static Set<Map<String,Object>> getScheduleByAbnormalList(List<Map<String,Object>> scheduleMapList,List<Map<String,Object>> abnormalList,String analysisDate){
Set<Map<String,Object>> resultList = Sets.newHashSet();
for (Map<String,Object> abnormal:abnormalList){
ClockPointEnum pointType = (ClockPointEnum)abnormal.get("pointType");
String pointTime = abnormal.get("pointTime").toString();
for (Map<String,Object> scheduleMap:scheduleMapList){
String kssj = getkssjTime(scheduleMap,analysisDate);
String jssj = getjssjTime(scheduleMap,analysisDate);
String time = "";
if (pointType == ClockPointEnum.END){
time = jssj;
}else if (pointType == ClockPointEnum.START){
time = kssj;
}
if (DateUtil.getTime(time).compareTo(DateUtil.getTime(pointTime)) == 0){
resultList.add(scheduleMap);
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(pointTime)) <0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(pointTime)) >0){
resultList.add(scheduleMap);
}
}
}
return resultList;
}
/**
*
* @param scheduleMapList
* @param abnormalScheduleList
* @param analysisDate
* @return
*/
public static List<Map<String,Object>> mergeOneScheduleAbnormal(List<Map<String,Object>> scheduleMapList,List<Map<String,Object>> abnormalScheduleList,String analysisDate){
List<Map<String,Object>> resultList = Lists.newArrayList();
for (Map<String,Object> scheduleMap:scheduleMapList){
List<Map<String,Object>> abnormals = getAbnormalListBySchedule(scheduleMap,abnormalScheduleList,analysisDate);
if (abnormals.size() == 1){
resultList.add(abnormals.get(0));
}else if (abnormals.size() > 1){
String kssj = getkssjTime(scheduleMap,analysisDate);
String jssj = getjssjTime(scheduleMap,analysisDate);
int betweenMinute = DateUtil.getBetWeenMinutes(kssj,jssj);
List<Map<String,Object>> filterAbnormals = abnormals.stream().filter(e->e.get("itemType") == AttendanceItemTypeEnum.MISSE_CARD ||
Integer.valueOf(e.get("betweenMinutes") == null?"0":e.get("betweenMinutes").toString()) >= betweenMinute).collect(Collectors.toList());
if (filterAbnormals.size() > 0){
resultList.add(filterAbnormals.get(0));
}else {
resultList.addAll(abnormals);
}
}
}
return resultList;
}
}

Binary file not shown.

Binary file not shown.

@ -0,0 +1,61 @@
import java.util.*;
public class LogAnalyzerService {
// 方法:分析日志并回答查询
public List<Integer> analyzeLogs(int[][] logData, int x, int[] queries) {
// 用于记录每个服务器最后一次请求的时间
Map<Integer, Integer> lastRequestTime = new HashMap<>();
// 遍历日志数据,更新每个服务器的最后一次请求时间
for (int[] logEntry : logData) {
int serverId = logEntry[0];
int time = logEntry[1];
lastRequestTime.put(serverId, Math.max(lastRequestTime.getOrDefault(serverId, 0), time));
}
// 存储查询结果的列表
List<Integer> results = new ArrayList<>();
// 遍历每个查询
for (int queryTime : queries) {
int startTime = queryTime - x;
int inactiveServersCount = 0;
// 检查每个服务器在查询的时间区间内是否有请求
for (int serverId = 1; serverId <= lastRequestTime.size(); serverId++) {
if (!lastRequestTime.containsKey(serverId) || lastRequestTime.get(serverId) < startTime) {
// 服务器不存在或最后请求时间在查询区间之前,视为不活跃
inactiveServersCount++;
}
}
// 将不活跃服务器的数量添加到结果列表中
results.add(inactiveServersCount);
}
return results;
}
public static void main(String[] args) {
// 示例日志数据
int[][] logData = {
{1, 1},
{2, 3},
{3, 5},
{1, 6},
{2, 8}
};
int x = 2; // 时间窗口
int[] queries = {5, 7, 9}; // 查询时间点
LogAnalyzerService service = new LogAnalyzerService();
List<Integer> results = service.analyzeLogs(logData, x, queries);
// 输出查询结果
for (int i = 0; i < queries.length; i++) {
System.out.println("For query at time " + queries[i] + ", number of inactive servers: " + results.get(i));
}
}
}

@ -5,6 +5,10 @@ import com.engine.jucailinkq.common.util.DateUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import weaver.general.Util;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.*;
@ -14,12 +18,8 @@ import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
System.out.println("uf_jcl_kq_qjjl_dt2".contains("_dt"));
System.out.println(DateUtil.getBetWeenMinutes("2024-06-28 17:17","2024-06-28 22:29"));
System.out.println((int) Math.ceil(Double.valueOf("0.18")*60));
String t = new BigDecimal(7.55).divide(new BigDecimal(2),new MathContext(2, RoundingMode.HALF_UP)).toString();
System.out.println(t);
// List<Integer> list = Lists.newArrayList();
// aa(list);
// System.out.println(list);

@ -7,10 +7,12 @@ import com.engine.jucailinkq.attendance.component.calendarscheduling.service.imp
import com.engine.common.util.ServiceUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import weaver.hrm.User;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class
@ -65,5 +67,25 @@ Test extends beforlog{
Map<String,List<Map<String,Object>>> sonGroupMap = sonItemList.stream().collect(Collectors.groupingBy(e->e.get("sjxm").toString()));
}
@org.junit.Test
public void testRealse4() throws Exception{
List<Map<String,Object>> sonItemList = Lists.newArrayList();
Map<String,Object> map1 = Maps.newHashMap();
map1.put("key","1");
Map<String,Object> map2 = Maps.newHashMap();
map2.put("key","2");
Map<String,Object> map3 = Maps.newHashMap();
map3.put("key","3");
sonItemList.add(map1);
sonItemList.add(map2);
sonItemList.add(map3);
List<Map<String,Object>> resultList = Lists.newArrayList();
for (int i=0;i<2;i++){
for (Map<String,Object> scheduleMap:sonItemList){
resultList.add(scheduleMap);
}
}
System.out.println(resultList);
}
}

@ -1,36 +0,0 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.util.*;
import java.util.stream.Collectors;
public class TestObj {
public static void main(String[] args) throws Exception{
List<Map<String,Object>> list = Lists.newArrayList();
Map<String,Object> map1 = Maps.newHashMap();
Map<String,Object> map2 = Maps.newHashMap();
Map<String,Object> map3 = Maps.newHashMap();
map1.put("betweenMinutes","1");
map2.put("betweenMinutes","10");
map3.put("betweenMinutes","5");
list.add(map1);
list.add(map2);
list.add(map3);
List<Map<String,Object>> sortOffsetAskForLeaveAnomalyList = list.stream().sorted(Comparator.comparing(e->Integer.valueOf(e.get("betweenMinutes").toString()))).collect(Collectors.toList());
System.out.println(sortOffsetAskForLeaveAnomalyList);
int total = sortOffsetAskForLeaveAnomalyList.stream().mapToInt(e->Integer.valueOf(e.get("betweenMinutes").toString())).sum();
System.out.println(total);
}
public static int aa(){
for (int i=0;i<=3;i++){
if (i==2){
return 2;
}
}
return -1;
}
}

@ -22,7 +22,6 @@ public class TestRunnable implements Runnable{
RequestService requestService = new RequestService();
// requestService.setSubmitToNodeid("366");
// requestService.saveRequest(requestInfo);
requestService.nextNodeBySubmit(requestInfo,requestInfo.getRequestManager().getRequestid(),24,"自动提交11111");
}catch (Exception e){

@ -1,6 +1,7 @@
package vocation;
import com.engine.jucailinkq.attendance.component.persongroup.commonutil.PersongroupCommonUtil;
import com.engine.jucailinkq.attendance.enums.AccountingUnitEnum;
import com.engine.jucailinkq.attendance.vacation.service.VocationService;
import com.engine.jucailinkq.attendance.vacation.service.impl.VocationServiceImpl;
import com.engine.common.util.ServiceUtil;
@ -9,6 +10,7 @@ import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.Utils;
import com.engine.cube.service.ModeImpExpService;
import com.engine.cube.service.impl.ModeImpExpServiceImpl;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.junit.Test;
import weaver.hrm.User;
@ -17,7 +19,10 @@ import workflow.beforlog;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Test1 extends beforlog {
private ModeImpExpService getService(User user) {
@ -48,11 +53,7 @@ public class Test1 extends beforlog {
}
@Test
public void test3() throws Exception{
BigDecimal overdraftHoliday = new BigDecimal(5.000);
BigDecimal overdraftHoliday2 = new BigDecimal(0.9000);
BigDecimal overdraftHoliday3 = new BigDecimal(0.1000);
System.out.println(new BigDecimal("-7.0000").subtract(new BigDecimal(String.valueOf("1.0000")),new MathContext(4, RoundingMode.HALF_UP)).doubleValue());
System.out.println(Utils.getItemduration(0.5, AccountingUnitEnum.HOUR.getKey(),190,AccountingUnitEnum.MINUTES,8.00));
}

Loading…
Cancel
Save