zm_dev
liuliang 1 year ago
parent 68b3e5579c
commit 0401d6c890

@ -10,15 +10,42 @@
</component>
<component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/test/TestByIntervalPayMentWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/test/TestOneTimePayMentWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/log/sdk.log" beforeDir="false" afterPath="$PROJECT_DIR$/log/sdk.log" afterDir="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/attendance/attendanceanalysis/cmd/GetClockInPointCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInPointCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/AbnormalAttendanceServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/UtilServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/enums/ClassSegmentTypeEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/ClassSegmentTypeEnum.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/enums/WorkForTimeEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/WorkForTimeEnum.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/cmd/VocationCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/cmd/VocationCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/service/impl/VocationServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/service/impl/VocationServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/util/VocationCommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/util/VocationCommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/cmd/GetPersonDateBySuitOrganzation.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/cmd/GetPersonDateBySuitOrganzation.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/DbTools.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/DbTools.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/cmd/VocationCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/cmd/VocationCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/service/impl/VocationServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/service/impl/VocationServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/cmd/GetPersonDateBySuitOrganzation.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/cmd/GetPersonDateBySuitOrganzation.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/util/DbTools.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/DbTools.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestByIntervalPayMentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestByIntervalPayMentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestBySchedulePaymentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestBySchedulePaymentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestObj.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestObj.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestSinglePaymentFullWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestSinglePaymentFullWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestObj.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestObj.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestSinglePaymentFullWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestSinglePaymentFullWay.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -59,7 +86,7 @@
<property name="ToolWindowRun.ShowToolbar" value="false" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="com.intellij.ide.scratch.ScratchImplUtil$2/New Scratch File" value="PLAIN_TEXT" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../../easyentry" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="project.structure.last.edited" value="Artifacts" />
<property name="project.structure.proportion" value="0.0" />
@ -82,7 +109,7 @@
<recent name="com.api.attendance.attendanceAnalysis" />
</key>
</component>
<component name="RunManager" selected="Application.TestByIntervalPayMentWay">
<component name="RunManager" selected="Application.TestSinglePaymentFullWay">
<configuration name="TestByIntervalPayMentWay" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestByIntervalPayMentWay" />
<module name="hrm-attendance" />
@ -90,21 +117,22 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestBySchedulePaymentWay (1)" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<configuration name="TestBySchedulePaymentWay" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestBySchedulePaymentWay" />
<module name="hrm-attendance" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestBySchedulePaymentWay" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestBySchedulePaymentWay" />
<configuration name="TestObj" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestObj" />
<module name="hrm-attendance" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestObj" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestObj" />
<configuration name="TestOneTimePayMentWay" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestOneTimePayMentWay" />
<module name="hrm-attendance" />
<method v="2">
<option name="Make" enabled="true" />
@ -119,11 +147,11 @@
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.TestByIntervalPayMentWay" />
<item itemvalue="Application.TestSinglePaymentFullWay" />
<item itemvalue="Application.TestOneTimePayMentWay" />
<item itemvalue="Application.TestObj" />
<item itemvalue="Application.TestByIntervalPayMentWay" />
<item itemvalue="Application.TestBySchedulePaymentWay" />
<item itemvalue="Application.TestBySchedulePaymentWay (1)" />
<item itemvalue="Application.TestSinglePaymentFullWay" />
</list>
</recent_temporary>
</component>
@ -369,7 +397,10 @@
<workItem from="1704624857172" duration="13062000" />
<workItem from="1704677723452" duration="30230000" />
<workItem from="1704725663394" duration="16000" />
<workItem from="1704764236606" duration="31783000" />
<workItem from="1704764236606" duration="34533000" />
<workItem from="1704850781225" duration="25349000" />
<workItem from="1704937221520" duration="25311000" />
<workItem from="1705023288904" duration="2704000" />
</task>
<servers />
</component>
@ -417,26 +448,6 @@
<line>90</line>
<option name="timeStamp" value="49" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java</url>
<line>254</line>
<option name="timeStamp" value="106" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java</url>
<line>284</line>
<option name="timeStamp" value="107" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/vacation/util/VocationCommonUtil.java</url>
<line>335</line>
<option name="timeStamp" value="116" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java</url>
<line>243</line>
<option name="timeStamp" value="117" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>

@ -1777,3 +1777,92 @@
2024-01-09 20:17:36,362 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-08-16, jqid=112, qsrq=2021-06-01, ffsj=2023-08-15 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-08-16}]
2024-01-09 20:18:01,081 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-09 20:18:01,091 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-08-15, jqid=112, qsrq=2021-06-01, ffsj=2023-08-15 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-08-15}]
2024-01-10 17:16:45,780 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:16:45,784 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2031-12-31}]
2024-01-10 17:17:50,991 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:17:50,995 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:17:50,997 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2031-01-01, jqid=112, qsrq=2021-06-01, ffsj=2031-06-01, lyid=18, jzrq=2031-12-31}]
2024-01-10 17:18:17,431 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:18:17,437 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:18:17,448 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-07-01]
2024-01-10 17:18:17,452 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-08-01]
2024-01-10 17:18:17,461 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-09-01]
2024-01-10 17:18:17,462 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-10-01]
2024-01-10 17:18:17,463 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-01]
2024-01-10 17:18:17,464 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-10 17:18:17,465 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-01-01]
2024-01-10 17:18:17,468 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-02-01]
2024-01-10 17:18:17,470 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-03-01]
2024-01-10 17:18:17,471 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-04-01]
2024-01-10 17:18:17,476 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=34.5, jzrq=2031-12-31}]
2024-01-10 17:33:41,175 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:33:41,179 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:33:41,188 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-07-01]
2024-01-10 17:33:41,191 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-08-01]
2024-01-10 17:33:41,195 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-09-01]
2024-01-10 17:33:41,196 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-10-01]
2024-01-10 17:33:41,198 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-01]
2024-01-10 17:33:41,198 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-10 17:33:41,199 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-01-01]
2024-01-10 17:33:41,200 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-02-01]
2024-01-10 17:33:41,202 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-03-01]
2024-01-10 17:33:41,203 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-04-01]
2024-01-10 17:33:41,204 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=34.5, jzrq=2031-12-31}]
2024-01-10 17:43:52,054 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:43:52,072 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2031-12-31}]
2024-01-10 17:45:23,678 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:45:23,699 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2031-12-31}]
2024-01-10 17:45:59,164 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:46:28,033 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2031-12-31}]
2024-01-10 17:46:57,300 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:47:18,998 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2031-12-31}]
2024-01-10 17:49:30,882 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:49:49,603 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2031-12-31}]
2024-01-10 17:50:33,138 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:50:37,670 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=71.5, jzrq=2031-12-31}]
2024-01-10 17:54:29,370 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:55:00,425 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=71.5, jzrq=2031-12-31}]
2024-01-10 17:55:07,526 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 17:56:25,255 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=71.5, jzrq=2031-12-31}]
2024-01-10 18:01:25,282 [Timer-0] [A2] [INFO] - rootPath == null
2024-01-10 18:01:25,284 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties
2024-01-10 18:28:49,202 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 18:31:23,989 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=71.5, jzrq=2031-12-31}]
2024-01-10 18:31:51,350 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 18:32:40,377 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=70.0, jzrq=2031-12-31}]
2024-01-10 19:36:20,061 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 19:36:20,065 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2031-12-31}]
2024-01-10 19:36:58,201 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 19:36:58,219 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-10 19:37:35,935 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 19:39:20,085 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-10 19:39:45,354 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 19:39:45,369 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-10 20:04:19,494 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-10 20:04:19,500 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-11 13:54:15,531 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 13:54:39,065 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 13:54:57,340 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 13:55:01,917 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 13:55:25,104 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 13:55:25,158 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 13:59:10,982 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:00:30,674 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:11:09,675 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:11:41,987 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:13:04,859 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:13:07,105 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:13:27,813 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:14:04,223 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:16:11,655 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:16:11,714 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:16:23,112 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:16:41,281 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:16:46,963 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:16:50,149 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:17:06,937 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2022-12-11]
2024-01-11 14:17:22,623 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2022-12-11, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=0.0, jzrq=2023-12-31}]
2024-01-11 14:18:08,581 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2023-01-01]
2024-01-11 14:18:08,598 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2023-01-01, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=4.0, jzrq=2023-12-31}]
2024-01-11 14:18:17,808 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2023-01-01]
2024-01-11 14:19:16,295 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2023-01-01, ffsj=2023-11-12 00:00:00, lyid=21.0, ktsc=4.0, jzrq=2023-12-31}]

@ -246,7 +246,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
* @param scheduleResult
* @param clockInTimeList
* @param needClockDateList
* @return {2023-11-12 09:00|0|3|2023-11-12 09:15={signtime=09:11:00, id=48, userid=53, signdate=2023-11-12}}
* @return {2023-11-12 09:00|0|3|2023-11-12 09:15 ={signtime=09:11:00, id=48, userid=53, signdate=2023-11-12}}
* ||| = map
*/
public List<Map<String, Map<String, Object>>> getClockInPoint(String analysisDate, List<Map<String, Object>> scheduleResult, List<Map<String, Object>> clockInTimeList, List<String> needClockDateList) {
@ -432,8 +432,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
*/
if (scheduleResult.size() > 0) {
//上下班弹性,
List<Map<String, Object>> workScheduleList = scheduleResult.stream().filter(e -> ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(e.get("bdlx"))
|| ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
List<Map<String, Object>> workScheduleList = scheduleResult.stream().filter(e -> ClassSegmentTypeEnum.WORK_TIME.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
//请假和外出集合
List<Map<String, Object>> leaveAndEvctionList = scheduleResult.stream().filter(e -> ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey().equals(e.get("bdlx")) ||
@ -603,6 +602,22 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
}
}
/**
*
*/
if (scheduleResult.size() > 0) {
List<Map<String, Object>> restScheduleList = scheduleResult.stream().filter(e -> ClassSegmentTypeEnum.REST_AND_DINE.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.REST_PERIOD.getKey().equals(e.get("bdlx"))
|| ClassSegmentTypeEnum.DINING_PERIOD.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
for (int i=0;i<restScheduleList.size();i++){
Map<String, Object> restSchedule = restScheduleList.get(i);
String dtsfdx = Util.null2String(restSchedule.get("dtsfdx"));
String dtzddxfz = Util.null2String(restSchedule.get("dtzddxfz"));
String dtdxhs = Util.null2String(restSchedule.get("dtdxhs"));
if (CheckBoxEnum.CHECKED.getKey().equals(dtsfdx)){
}
}
}
/**
* 22
*/

@ -108,7 +108,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
}
}else if (ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(bdlx) || ClassSegmentTypeEnum.EARLY_OVERTIME.getKey().equals(bdlx)
|| ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
|| ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx) || ClassSegmentTypeEnum.OVERTIME_IN_CLASS.getKey().equals(bdlx)){
//加班
List<Map<String,Object>> workTimeItems = Lists.newArrayList();
if (ClassSegmentTypeEnum.EXTENDED_OVERTIME.getKey().equals(bdlx)){
@ -121,7 +121,11 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
workTimeItems = (List<Map<String,Object>>)result.get("attendanceItems");
}else if (ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
lateParams.put("workfor",WorkForTimeEnum.PLAN_WORK_OVERTIME.getKey());
workTimeItems = (List<Map<String,Object>>)classInfo.get("attendanceItems");
workTimeItems = (List<Map<String,Object>>)classInfo.get("jblx");
}else if (ClassSegmentTypeEnum.OVERTIME_IN_CLASS.getKey().equals(bdlx)){
lateParams.put("workfor",WorkForTimeEnum.OVERTIME_IN_CLASS.getKey());
Map<String,Object> result = commandExecutor.execute(new WorkOvertimeItemCmd(lateParams));
workTimeItems = (List<Map<String,Object>>)result.get("attendanceItems");
}
List<Map<String,Object>> lateItems = getBeLateItems(lateParams);
if (workTimeItems.size() > 0 && lateItems.size() >0){

@ -25,6 +25,11 @@ import java.util.stream.Collectors;
public class UtilServiceImpl extends Service implements UtilService {
private SchedulingResultsService schedulingResultsService = ServiceUtil.getService(SchedulingResultsServiceImpl.class);
/**
*
* @param params
* @return
*/
@Override
public Map<String, Object> getSchedulingInFormation(Map<String, Object> params) {
@ -43,7 +48,7 @@ public class UtilServiceImpl extends Service implements UtilService {
schedulMap.put("schedulingMapBydate",schedulingMapBydate);
Map<String,List<Map<String,Object>>> resultMap = Maps.newHashMap();
String sql = "select a.id bcxx,a.edsc,a.zgzsc,a.bcsdxx,a.sfdx,a.sfkt,b.bdlx,a.btgz,a.fgsjd,a.zddxfz,a.dxhs,b.kssj dtkssj,b.jssj dtjssj,b.ksdk,b.jsdk,b.tqdkfzs,b.thdkfzs,b.edxss from uf_jcl_kq_bcxx a left join uf_jcl_kq_bcxx_dt1 b on a.id=b.mainid where a.id in (";
String sql = "select a.id bcxx,a.edsc,a.zgzsc,a.bcsdxx,a.sfdx,a.sfkt,b.bdlx,a.btgz,a.fgsjd,a.zddxfz,a.dxhs,b.kssj dtkssj,b.jssj dtjssj,b.ksdk,b.jsdk,b.tqdkfzs,b.thdkfzs,b.edxss,b.sfdx dtsfdx,b.zddxfz dtzddxfz,b.dxhs dtdxhs from uf_jcl_kq_bcxx a left join uf_jcl_kq_bcxx_dt1 b on a.id=b.mainid where a.id in (";
String bcxxIds = "";
for (Map.Entry<String,List<Map<String,Object>>> entry :schedulingMap.entrySet()){
if (!entry.getKey().equals("")){
@ -175,6 +180,11 @@ public class UtilServiceImpl extends Service implements UtilService {
}
/**
*
* @param params
* @return
*/
@Override
public List<Map<String, Object>> getClockInTime(Map<String, Object> params) {
Map<String,Object> result = commandExecutor.execute(new GetClockInTimeItemCmd(params));
@ -244,6 +254,11 @@ public class UtilServiceImpl extends Service implements UtilService {
return resultMap;
}
/**
*
* @param params
* @return
*/
@Override
public List<Map<String, Map<String, Object>>> getClockInPointCmd(Map<String,Object> params) {
Map<String,Object> resultMap = commandExecutor.execute(new GetClockInPointCmd(params));
@ -251,6 +266,11 @@ public class UtilServiceImpl extends Service implements UtilService {
return (List<Map<String,Map<String,Object>>>)resultMap.get("clcokInTimeData");
}
/**
*
* @param params
* @return
*/
@Override
public double computeAttendanceDuration(Map<String, Object> params) {
Map<String,Object> resultMap = commandExecutor.execute(new ComputeAttendanceDurationCmd(params));

@ -117,6 +117,10 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
}else if (ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
getWorkOverTimeParam.put("workfor",WorkForTimeEnum.PLAN_WORK_OVERTIME.getKey());
workTimeBeLateItems = (List<Map<String,Object>>)scheduleMap.get("jblx");
}else if (ClassSegmentTypeEnum.OVERTIME_IN_CLASS.getKey().equals(bdlx)){
getWorkOverTimeParam.put("workfor",WorkForTimeEnum.OVERTIME_IN_CLASS.getKey());
Map<String,Object> result = commandExecutor.execute(new WorkOvertimeItemCmd(getWorkOverTimeParam));
workTimeBeLateItems = (List<Map<String,Object>>)result.get("attendanceItems");
}else {
continue;
}

@ -12,9 +12,10 @@ public enum ClassSegmentTypeEnum implements BaseEnum {
EARLY_OVERTIME("3","早到加班"),
REST_PERIOD("4","休息时段"),
DINING_PERIOD("5","就餐时段"),
OVERTIME_PLAN("6","加班计划"),
ASK_FOR_LEAVE("7","请假假期"),
EVECTION("8","外出出差");
OVERTIME_IN_CLASS("6","班内加班"),
OVERTIME_PLAN("7","加班计划"),
ASK_FOR_LEAVE("8","请假假期"),
EVECTION("9","外出出差");
private String key;
private String value;

@ -12,7 +12,8 @@ public enum WorkForTimeEnum implements BaseEnum {
EARLY_TO_WORK_OVERTIME("3","早到加班"),
PLAN_WORK_OVERTIME("4","计划加班"),
LEAVE_TIME("5","请假时段"),
EVECTION("6","外出出差");
EVECTION("6","外出出差"),
OVERTIME_IN_CLASS("7","班内加班");
private String key;

@ -31,11 +31,15 @@ public class VocationCmd extends AbstractCommonCommand<Map<String,Object>> {
public Map<String, Object> execute(CommandContext commandContext) {
List<Map<String,Object>> vocationList = (List<Map<String,Object>>)params.get("vocationList");
Map<String,Object> userMap = (Map<String,Object>)params.get("userMap");
for (Map<String,Object> vocation : vocationList){
String qsrq = Util.null2String(userMap.get(vocation.get("qsrq")));
String yjzd = Util.null2String(userMap.get(vocation.get("yjzd")));
vocation.put("qsrq",qsrq);
vocation.put("yjzd",yjzd);
log.info("qsrq : [{}],yjzd : [{}]",vocation.get("qsrq"),vocation.get("yjzd"));
String qsrq = Util.null2String(userMap.get(vocation.get("qsrq").toString().toLowerCase()));
String yjzd = Util.null2String(userMap.get(vocation.get("yjzd").toString().toLowerCase()));
String ljcrglyfslwz = Util.null2String(userMap.get(vocation.get("ljcrglyfslwz")));
vocation.put("qsrqValue",qsrq);
vocation.put("yjzdValue",yjzd);
vocation.put("ljcrglyfslwzValue",ljcrglyfslwz);
}
log.info("VocationCmd params: [{}]",params);
String edfffs = Util.null2String(vocationList.get(0).get("edfffs"));

@ -5,6 +5,7 @@ import com.engine.attendance.enums.QuotaChangeMethodEnum;
import com.engine.attendance.enums.StartingUnitEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.google.common.collect.Maps;
import weaver.general.TimeUtil;
import weaver.general.Util;
@ -26,7 +27,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
}
@Override
public void compute(Map<String, Object> data) {
public Map<String,Object> compute(Map<String, Object> data) {
String userId = Util.null2String(data.get("userId"));
String releaseDate = Util.null2String(data.get("releaseDate"));
String cover = Util.null2String(data.get("cover"));
@ -35,15 +36,15 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
}
List<Map<String, Object>> vocationList = (List<Map<String, Object>>) data.get("vocationList");
//起算日期
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
//额度有效期间
String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz"));
//额度有效期间单位
String edyxq = Util.null2String(vocationList.get(0).get("edyxq"));
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwzValue"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
String yjzd = Util.null2String(vocationList.get(0).get("yjzdValue"));
//调整起算日期策略
String dzqsrq = Util.null2String(vocationList.get(0).get("dzqsrq"));
//分割日期
@ -67,11 +68,12 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq, dzqsrq, fgrq);
for (Map<String, Object> vocationMap : vocationList) {
vocationMap.put("qsrq", qsrq);
vocationMap.put("qsrqValue", qsrq);
}
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(qsrq)) < 0){
releaseDate=qsrq;
//releaseDate=qsrq;
return Maps.newHashMap();
}
//相差天数
@ -85,7 +87,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
Map<String, Object> insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate);
// List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
String sxrq = insertHoliDayParam.get("sxrq").toString();
String jzrq = insertHoliDayParam.get("jzrq").toString();
@ -104,6 +106,11 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
String divideTime = DateUtil.beforeMonth(qsrq,seniority);
divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2];
insertHoliDayParam.put("sxrq", divideTime);
dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return insertHoliDayParam;
}
}
insertHoliDayParam.put("ktsc", restTime);
}else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
@ -248,17 +255,19 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
}
insertHoliDayParam.put("ktsc", restTime);
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,new ArrayList<>());
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList);
return insertHoliDayParam;
}
public double getRestTime(Map<String, Object> insertHoliDayParam,List<Map<String, Object>> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate){
String sxrq = insertHoliDayParam.get("sxrq").toString();
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd);
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwzValue"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
String yjzd = Util.null2String(vocationList.get(0).get("yjzdValue"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
//提前执行发放操作的天数
@ -303,7 +312,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
//当前后额定可休时长一样时,代表没有残年情况
if (beginEdktsc == endEdktsc){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >0){
//新员工入职
int days = DateUtil.getBetWeenDays(qsrq,releaseDate.split(" ")[0])+1;
restTime = VocationCommonUtil.computeRestDays(days, yearDays, endEdktsc, wscl);
@ -313,7 +322,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
}
}else {
//考虑残年
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >0){
//新员工入职
if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(divideTime)) >=0){

@ -6,6 +6,7 @@ import com.engine.attendance.enums.QuotaChangeMethodEnum;
import com.engine.attendance.enums.StartingUnitEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
@ -28,7 +29,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
}
@Override
public void compute(Map<String, Object> data) {
public Map<String,Object> compute(Map<String, Object> data) {
String userId = Util.null2String(data.get("userId"));
String releaseDate = Util.null2String(data.get("releaseDate"));
String cover = Util.null2String(data.get("cover"));
@ -37,15 +38,15 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
}
List<Map<String,Object>> vocationList = (List<Map<String,Object>>)data.get("vocationList");
//起算日期
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
//额度有效期间
String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz"));
//额度有效期间单位
String edyxq = Util.null2String(vocationList.get(0).get("edyxq"));
//累计承认工龄月份数栏位值
String ljcrglyfslwz= Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
String ljcrglyfslwz= Util.null2String(vocationList.get(0).get("ljcrglyfslwzValue"));
//依据字段
String yjzd= Util.null2String(vocationList.get(0).get("yjzd"));
String yjzd= Util.null2String(vocationList.get(0).get("yjzdValue"));
//调整起算日期策略
String dzqsrq= Util.null2String(vocationList.get(0).get("dzqsrq"));
//分割日期
@ -69,11 +70,12 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq,dzqsrq,fgrq);
for (Map<String, Object> vocationMap : vocationList) {
vocationMap.put("qsrq", qsrq);
vocationMap.put("qsrqValue", qsrq);
}
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(qsrq)) < 0){
releaseDate=qsrq;
//releaseDate=qsrq;
return Maps.newHashMap();
}
//相差天数
@ -110,7 +112,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
releaseDateMonths=1;
}
if (ffsjMonths == releaseDateMonths && !"1".equals(cover)){
return;
return insertHoliDayParam;
}
}
String sxrq = insertHoliDayParam.get("sxrq").toString();
@ -130,6 +132,11 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
String divideTime = DateUtil.beforeMonth(qsrq,seniority);
divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2];
insertHoliDayParam.put("sxrq", divideTime);
dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return insertHoliDayParam;
}
}
insertHoliDayParam.put("ktsc", restTime);
} else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
@ -168,16 +175,18 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
insertHoliDayParam.put("ktsc",restTime);
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye",insertHoliDayParam,dataList);
return insertHoliDayParam;
}
public double getRestTime(Map<String, Object> insertHoliDayParam,List<Map<String, Object>> vocationList,QuotaChangeMethodEnum changeMethodEnum,String releaseDate){
String sxrq = insertHoliDayParam.get("sxrq").toString();
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd);
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwzValue"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
String yjzd = Util.null2String(vocationList.get(0).get("yjzdValue"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
//提前执行发放操作的天数
@ -223,7 +232,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
if (beginEdktsc == endEdktsc){
//当前后额定可休时长一样时,代表没有残年情况
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >0){
//生成起算日期当年的假期余额,通常用于没有工作经验的新员工
int months = releaseDateMonths-qsrqMonths+1;
restTime = getRestTime(months,endYearmap);
@ -232,7 +241,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
}
}else {
//考虑残年
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >0){
//生成起算日期当年的假期余额,通常用于有工作经验的新员工
if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){

@ -6,5 +6,5 @@ import java.util.Map;
public interface HolidayGenerationWay {
boolean support(int personClassfiy);
void compute(Map<String,Object> requestList);
Map<String,Object> compute(Map<String,Object> requestList);
}

@ -1,7 +1,14 @@
package com.engine.attendance.vacation.job.holidaygeneration.tactics;
import java.util.Map;
import com.engine.attendance.enums.StartingUnitEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.google.common.collect.Maps;
import weaver.general.TimeUtil;
import weaver.general.Util;
import java.util.*;
/**
*
@ -16,7 +23,190 @@ public class OneTimePayMentWay implements HolidayGenerationWay{
}
@Override
public void compute(Map<String, Object> data) {
public Map<String,Object> compute(Map<String, Object> data) {
String userId = Util.null2String(data.get("userId"));
List<Map<String, Object>> vocationList = (List<Map<String, Object>>) data.get("vocationList");
String releaseDate = Util.null2String(data.get("releaseDate"));
if ("".equals(releaseDate)) {
releaseDate = DateUtil.getCurrentTime();
}
String cover = Util.null2String(data.get("cover"));
Map<String, Object> maxMap = vocationList.stream().max(Comparator.comparing(e->Double.valueOf(e.get("jgsc1").toString()).intValue())).get();
int maxjgsc1 = Double.valueOf(maxMap.get("jgsc1").toString()).intValue();
//起算日期
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
//调整起算日期策略
String dzqsrq= Util.null2String(vocationList.get(0).get("dzqsrq"));
//分割日期
String fgrq= Util.null2String(vocationList.get(0).get("fgrq"));
data.put("isOneTime","1");
qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq,dzqsrq,fgrq);
for (Map<String, Object> vocationMap : vocationList) {
vocationMap.put("qsrqValue", qsrq);
}
//额度有效期间单位
String edyxq = Util.null2String(vocationList.get(0).get("edyxq"));
Map<String, Object> insertHoliDayParam = getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate,maxjgsc1);
List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return insertHoliDayParam;
}
//实际休息时长
double restTime = 0;
SinglePaymentInFullWay singlePaymentInFullWay = new SinglePaymentInFullWay();
if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())){
//自然年
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextYear(qsrq,i,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){
//起算年
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextYear(qsrq,i,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){
//自然月
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextMonth(qsrq,i,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){
//起算月
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextMonth(qsrq,i,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){
//自然周
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextMonth(qsrq,i*7,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){
//起算周
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextMonth(qsrq,i*7,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){
//自然天
for (int i=0;i<=maxjgsc1;i++){
String executeTime = DateUtil.nextMonth(qsrq,i,DateUtil.yyyyMMdd);
data.put("releaseDate",executeTime);
Map<String,Object> map = singlePaymentInFullWay.compute(data);
double ktsc = map.get("ktsc") == null?0:Double.valueOf(map.get("ktsc").toString());
restTime = restTime + ktsc;
}
}
insertHoliDayParam.put("ktsc", restTime);
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList);
return insertHoliDayParam;
}
/**
*
* @param vocationMap
* @param userId
* @param qsrq
* @param releaseDate
* @return
*/
public Map<String,Object> getInsertHoliDayParam(Map<String,Object> vocationMap,String userId,String qsrq,String releaseDate,int maxjgsc1){
Map<String,Object> param = Maps.newHashMap();
//额度有效期间单位
String edyxq = Util.null2String(vocationMap.get("edyxq"));
param.put("lyid",vocationMap.get("dataid"));
param.put("jqid",vocationMap.get("jb"));
param.put("ygid",userId);
param.put("qsrq",qsrq);
param.put("ffsj",releaseDate);
if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())){
//自然年
String sxrq = qsrq.split("-")[0]+"-01-01";
String endSxrq = DateUtil.nextYear(sxrq,maxjgsc1,DateUtil.yyyy);
param.put("sxrq",sxrq);
param.put("jzrq",endSxrq+"-12-31");
}else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){
//起算年
param.put("sxrq",qsrq);
String endjzrq = DateUtil.nextYear(qsrq,maxjgsc1+1,DateUtil.yyyyMMdd);
param.put("jzrq",DateUtil.beforeDay(endjzrq,1));
}else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){
//自然月
String sxrq = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01";
String endSxrq = DateUtil.nextMonth(sxrq,maxjgsc1,DateUtil.yyyyMM);
param.put("sxrq",sxrq);
int days = DateUtil.getDays(endSxrq, Calendar.DAY_OF_MONTH);
param.put("jzrq",endSxrq+"-"+days);
}else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){
//起算月
param.put("sxrq",qsrq);
String endjzrq = DateUtil.nextMonth(qsrq,maxjgsc1+1,DateUtil.yyyyMMdd);
param.put("jzrq",DateUtil.beforeDay(endjzrq,1));
}else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){
//自然周
int dayOfWeek = TimeUtil.getDayOfWeek(qsrq);
if (dayOfWeek == 0){
dayOfWeek = 7;
}
String sxrq = DateUtil.beforeDay(qsrq,dayOfWeek-1);
String endSxrq = DateUtil.AfterDay(sxrq,maxjgsc1*7);
param.put("sxrq",sxrq);
param.put("jzrq",DateUtil.AfterDay(endSxrq,6));
}else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){
//起算周
param.put("sxrq",qsrq);
param.put("jzrq",DateUtil.AfterDay(qsrq,7*(maxjgsc1+1)-1));
}else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){
//自然天
param.put("sxrq",qsrq);
param.put("jzrq",DateUtil.AfterDay(qsrq,maxjgsc1));
}
return param;
}
}

@ -7,6 +7,7 @@ import com.engine.attendance.enums.StartingUnitEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import weaver.hrm.User;
@ -30,24 +31,25 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
}
@Override
public void compute(Map<String, Object> data) {
public Map<String,Object> compute(Map<String, Object> data) {
String userId = Util.null2String(data.get("userId"));
String releaseDate = Util.null2String(data.get("releaseDate"));
String cover = Util.null2String(data.get("cover"));
String isOneTime = Util.null2String(data.get("isOneTime"));
if ("".equals(releaseDate)) {
releaseDate = DateUtil.getCurrentTime();
}
List<Map<String, Object>> vocationList = (List<Map<String, Object>>) data.get("vocationList");
//起算日期
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
//额度有效期间
String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz"));
//额度有效期间单位
String edyxq = Util.null2String(vocationList.get(0).get("edyxq"));
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwzValue"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
String yjzd = Util.null2String(vocationList.get(0).get("yjzdValue"));
//调整起算日期策略
String dzqsrq = Util.null2String(vocationList.get(0).get("dzqsrq"));
//分割日期
@ -69,12 +71,15 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
//首次获得额度控制生效日期
String schdedkzsxrq = Util.null2String(vocationList.get(0).get("schdedkzsxrq"));
if (!"1".equals(isOneTime)){
qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq, dzqsrq, fgrq);
for (Map<String, Object> vocationMap : vocationList) {
vocationMap.put("qsrq", qsrq);
vocationMap.put("qsrqValue", qsrq);
}
}
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(qsrq)) < 0){
releaseDate=qsrq;
//releaseDate=qsrq;
return Maps.newHashMap();
}
//相差天数
@ -89,11 +94,12 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
Map<String, Object> insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate);
List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
// List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
List<Map<String,Object>> dataList = new ArrayList<>();
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return;
return insertHoliDayParam;
}
String sxrq = insertHoliDayParam.get("sxrq").toString();
@ -138,6 +144,12 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
String divideTime = DateUtil.beforeMonth(qsrq,seniority);
divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2];
insertHoliDayParam.put("sxrq", divideTime);
dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return insertHoliDayParam;
}
}
insertHoliDayParam.put("ktsc", restTime);
} else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
@ -254,18 +266,22 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
}
insertHoliDayParam.put("ktsc", restTime);
if (!"1".equals(isOneTime)){
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList);
}
return insertHoliDayParam;
}
public double getRestTime(Map<String, Object> insertHoliDayParam,List<Map<String, Object>> vocationList,QuotaChangeMethodEnum changeMethodEnum){
String sxrq = insertHoliDayParam.get("sxrq").toString();
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
String qsrq = Util.null2String(vocationList.get(0).get("qsrqValue"));
String nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd);
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwzValue"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
String yjzd = Util.null2String(vocationList.get(0).get("yjzdValue"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
@ -296,7 +312,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
if (beginEdktsc == endEdktsc){
//当前后额定可休时长一样时,代表没有残年情况
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >0){
int days = DateUtil.getBetWeenDays(qsrq,nextSxrq);
restTime = VocationCommonUtil.computeRestDays(days, yearDays, endEdktsc, wscl);
}else {
@ -304,7 +320,7 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay {
}
}else {
//考虑残年
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >0){
if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){
int beforeDays = DateUtil.getBetWeenDays(qsrq,divideTime);

@ -41,7 +41,7 @@ public class VocationServiceImpl extends Service implements VocationService {
for (List<String> list : userPartions){
String querySql = sql + String.join(",",list) +")";
log.info("querySql : [{}]",querySql);
List<Map<String,Object>> resultList = DbTools.getSqlToList(querySql);
List<Map<String,Object>> resultList = DbTools.getSqlToListKeySmallLetter(querySql);
List<Map<String,Object>> filterList = resultList.stream().filter(e -> "HrmCustomFieldByInfoType".equals(Util.null2String(e.get("scope"))) &&
"-1".equals(Util.null2String(e.get("scopeid")))).collect(Collectors.toList());

@ -5,6 +5,7 @@ import com.engine.common.util.CommonUtil;
import com.engine.common.util.DateUtil;
import com.engine.common.util.DbTools;
import com.engine.common.util.Utils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.exolab.castor.xml.schema.IdentityField;
@ -41,7 +42,12 @@ public class VocationCommonUtil {
}
String divideDate=qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+fgrq;
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(divideDate)) >=0){
qsrq=divideDate;
//大于分割日期
String nextMonth = DateUtil.nextMonth(qsrq,1,DateUtil.yyyyMMdd);
qsrq = nextMonth.split("-")[0]+"-"+nextMonth.split("-")[1]+"-01";
}else {
//小于分割日期
qsrq = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01";
}
}else if (AdjustStartingTimeEnum.NOW_MONTH.getKey().equals(dzqsrq)){
@ -151,22 +157,55 @@ public class VocationCommonUtil {
*/
public static Map<String,Object> getVocationMap(List<Map<String,Object>> vocationList,int intervalDuration,String yjzd){
List<Map<String,Object>> resultList = vocationList.stream().filter(e -> {
String edyj = Util.null2String(vocationList.get(0).get("edyj"));
List<Map<String,Object>> resultList = Lists.newArrayList();
if (edyj.equals("0")){
resultList = vocationList.stream().filter(e -> {
//间隔时长起
double jgsc0 = Util.null2String(vocationList.get(0).get("jgsc0")).equals("")?0:Double.valueOf(Util.null2String(vocationList.get(0).get("jgsc0")));
//间隔时长止
double jgsc1 = Util.null2String(vocationList.get(0).get("jgsc1")).equals("")?0:Double.valueOf(Util.null2String(vocationList.get(0).get("jgsc1")));
if (intervalDuration >=jgsc0 && intervalDuration<=jgsc1){
return true;
}else {
return false;
}
}).collect(Collectors.toList());
}else if (edyj.equals("1")){
//选项值
resultList = vocationList.stream().filter(e -> {
//选项值
int xxz = Double.valueOf(Util.null2String(e.get("xxz"))).intValue();
if (xxz == Double.valueOf(yjzd).intValue()){
return true;
}else {
return false;
}
}).collect(Collectors.toList());
}else if (edyj.equals("2")){
//选项值+间隔时长
resultList = vocationList.stream().filter(e -> {
//间隔时长起
double jgsc0 = Double.valueOf(Util.null2String(e.get("jgsc0")));
//间隔时长止
double jgsc1 = Double.valueOf(Util.null2String(e.get("jgsc1")));
//选项值
String xxz = Util.null2String(e.get("xxz"));
if (!"".equals(yjzd) && xxz.equals(yjzd) && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){
return true;
}else if ("".equals(yjzd) && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){
int xxz = Double.valueOf(Util.null2String(e.get("xxz")).toString()).intValue();
if (!"".equals(yjzd) && xxz == Double.valueOf(yjzd).intValue() && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){
return true;
}else {
return false;
}
}).collect(Collectors.toList());
}else if (edyj.equals("3")){
//自由值
}else if (edyj.equals("4")){
//自由值+间隔时长
}
if (resultList.size() > 0){
return resultList.get(0);
}else {
@ -216,6 +255,7 @@ public class VocationCommonUtil {
*/
public static Map<String,Object> getInsertHoliDayParam(Map<String,Object> vocationMap,String userId,String qsrq,String ffsj){
Map<String,Object> param = Maps.newHashMap();
//额度有效期间单位
String edyxq = Util.null2String(vocationMap.get("edyxq"));
//额度有效期间
@ -409,7 +449,7 @@ public class VocationCommonUtil {
* @return
*/
public static List<Map<String,Object>> ifexist(String tableName,Map<String,Object> dataMap){
log.info("updateHolidayBalance dataMap:[{}]",dataMap);
log.info("ifexist dataMap:[{}]",dataMap);
String lyid = Util.null2String(dataMap.get("lyid"));
String ygid = Util.null2String(dataMap.get("ygid"));
String jqid = Util.null2String(dataMap.get("jqid"));

@ -221,8 +221,10 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
for (Map.Entry<String,String> vocationEntry :vocationMap.entrySet()){
String jb = vocationEntry.getKey();
String dataId = vocationEntry.getValue();
if (jb != null && !"".equals(jb) && vacationGroupByDataIdMap.get(dataId) !=null){
dataMap.put(jb,vacationGroupByDataIdMap.get(dataId));
}
}
newpersonMap.put(userId,dataMap);
}
return newpersonMap;

@ -33,6 +33,26 @@ public class DbTools {
return result;
}
public static List<Map<String,Object>> getSqlToListKeySmallLetter(String sql,Object...value){
RecordSet rs = thread.get();
List<Map<String,Object>> result = new ArrayList<>();
if (value == null || value.length <=0 || "".equals(value)){
rs.executeQuery(sql);
}else {
rs.executeQuery(sql,value);
}
while (rs.next()){
Map<String,Object> dataMap = new HashMap<>();
String[] columns = rs.getColumnName();
for (String column:columns){
dataMap.put(column.toLowerCase(),rs.getString(column));
}
result.add(dataMap);
}
return result;
}
// public static List<Map<String,Object>> getSqlToList(String sql,String dataSourceName){
// RecordSetDataSource rs = threads.get();
// if (rs == null){

Binary file not shown.

@ -1,3 +1,4 @@
import com.engine.attendance.enums.ClassSegmentTypeEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.engine.common.util.Utils;
@ -29,7 +30,23 @@ public class TestObj {
//
List<String> list = new ArrayList<>();
List<Map<String, Object>> vocationList = new ArrayList<>();
vocationList.add(new HashMap(){{
put("jgsc1","3");
}});
vocationList.add(new HashMap(){{
put("jgsc1","11");
}});
vocationList.add(new HashMap(){{
put("jgsc1","10");
}});
Map<String, Object> maxMap = vocationList.stream().max(Comparator.comparing(e->Integer.valueOf(e.get("jgsc1").toString()))).get();
System.out.println(maxMap);
// System.out.println(DateUtil.getBetWeenDays("2024-01-02","2024-01-10"));
// System.out.println(DateUtil.getBetWeenMonths("2021-06-01","2022-07-01"));
//System.out.println(DateUtil.beforeMonth("2021-06-01",14));

@ -0,0 +1,26 @@
import com.engine.attendance.vacation.job.holidaygeneration.tactics.OneTimePayMentWay;
import com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
public class TestOneTimePayMentWay {
public static void main(String[] args) {
Map<String,Object> param = Maps.newHashMap();
param.put("userId","53");
param.put("releaseDate","2021-12-01 00:00:00");
String json = "[{modedatamodifier=1, edyxqsz=1.00, modedatacreatertype=0, jgsc1=5.00, jgsc0=1.00, yqhedzgxz='', edbgsedclfs='1', edyxq='0', ljcrglyfslwz='0', edktsc=5.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-05-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='14', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='2', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'},{modedatamodifier=1, edyxqsz=2.00, modedatacreatertype=0, jgsc1=10.00, jgsc0=5.00, yqhedzgxz='', edbgsedclfs='1', edyxq='0', ljcrglyfslwz='1', edktsc=10.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-05-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='15', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='15', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'}]";
Gson gson = new Gson();
List<Map<String,String>> vocationList = Lists.newArrayList();
vocationList = gson.fromJson(json, (Type) vocationList.getClass());
System.out.println(vocationList);
param.put("vocationList",vocationList);
new OneTimePayMentWay().compute(param);
}
}

@ -12,9 +12,11 @@ public class TestSinglePaymentFullWay {
public static void main(String[] args) throws Exception{
Map<String,Object> param = Maps.newHashMap();
param.put("userId","53");
param.put("releaseDate","2021-12-01 00:00:00");
param.put("releaseDate","2023-11-12 00:00:00");
String json = "[{modedatamodifier=1, modedatacreatertype=0, edyxqsz='1', jgsc1='', jgsc0='', yqhedzgxz='', edbgsedclfs='1', edyxq='0', qsrqValue='2022-12-11', ljcrglyfslwz='workyear', edktsc=2.00, mc=测试年假2, MODEUUID=654a2cd6-831c-4f2c-99f9-bc38cccaf4c3, zyz='', id=21, jywxcl='', ljcrglyfslwzValue=1.08, mainid=21, edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater=1, ffsj='', jb='112', edbxdcxw='', modedatacreatetime='11:04:00', schdedablzs='1', dczskxsc='', yjzd=sex, formmodeid=201, rzdqedablzs=1, fdsc01='', ffdtffsj='00:00', yqsc='', fdsc07='', fdsc06='', szjg=2, fdsc09='', fdsc08='', qsrq=workstartdate, fdsc03='', modedatacreatedate='2024-01-11', fdsc02='', requestId='', fdsc05='', fdsc04='', sm='', eddw=1, form_biz_id=21000333, edyj='1', dzqsrq='1', schdedkzsxrq=0, fdsc10='', detailid=20, fdsc12='', fdsc11='', yjzdValue='1', fgrq=15, wscl='2', dataid=21, dqtqffts='15', xxz='0', modedatamodifydatetime='2024-01-11 11:05:11'}, {modedatamodifier=1, modedatacreatertype=0, edyxqsz=1, jgsc1='', jgsc0='1', yqhedzgxz='', edbgsedclfs=1, edyxq=0, qsrqValue='2022-12-11', ljcrglyfslwz='workyear', edktsc=4.00, mc=测试年假2, MODEUUID=654a2cd6-831c-4f2c-99f9-bc38cccaf4c3, zyz='', id=21, jywxcl='', ljcrglyfslwzValue=1.08, mainid=21, edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater=1, ffsj='', jb=112, edbxdcxw='', modedatacreatetime='11:04:00', schdedablzs='1', dczskxsc='', yjzd=sex, formmodeid=201, rzdqedablzs=1, fdsc01='', ffdtffsj='00:00', yqsc='', fdsc07='', fdsc06='', szjg=2, fdsc09='', fdsc08='', qsrq='workstartdate', fdsc03='', modedatacreatedate='2024-01-11', fdsc02='', requestId='', fdsc05='', fdsc04='', sm='', eddw=1, form_biz_id=21000333, edyj='1', dzqsrq=1, schdedkzsxrq=0, fdsc10='', detailid=21, fdsc12='', fdsc11='', yjzdValue='1', fgrq=15, wscl=2, dataid=21, dqtqffts=15, xxz='1', modedatamodifydatetime='2024-01-11 11:05:11'}]";
String json = "[{modedatamodifier=1, edyxqsz=1.00, modedatacreatertype=0, jgsc1=5.00, jgsc0=1.00, yqhedzgxz='', edbgsedclfs='1', edyxq='0', ljcrglyfslwz='18', edktsc=5.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-05-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='14', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='2', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'},{modedatamodifier=1, edyxqsz=2.00, modedatacreatertype=0, jgsc1=10.00, jgsc0=5.00, yqhedzgxz='', edbgsedclfs='1', edyxq='0', ljcrglyfslwz='1', edktsc=10.00, mc=测试年假, MODEUUID=d1489670-ec11-49f5-8786-58a9ffc1167f, zyz='', id='18', jywxcl='', mainid='18', edkyqcs='', edfffs='0', jjrbhzedn='', modedatacreater='1', ffsj='', jb='112', edbxdcxw='', modedatacreatetime='15:52:56', schdedablzs='1', dczskxsc='', yjzd='', formmodeid='201', rzdqedablzs='1', fdsc01='1', ffdtffsj='00:00', yqsc='', fdsc07='7', fdsc06='6', szjg='2', fdsc09='9', fdsc08='8', qsrq='2021-05-11', fdsc03='3', modedatacreatedate='2023-12-28', fdsc02='2', requestId='', fdsc05='5', fdsc04='4', sm='', eddw='1', form_biz_id=18000333, edyj='2', dzqsrq='1', schdedkzsxrq='0', fdsc10='10', detailid='15', fdsc12='12', fdsc11='11', fgrq='15', wscl='2', dataid='18', dqtqffts='15', xxz='0', modedatamodifydatetime='2024-01-04 16:51:17'}]";
Gson gson = new Gson();
List<Map<String,String>> vocationList = Lists.newArrayList();
vocationList = gson.fromJson(json, (Type) vocationList.getClass());

Loading…
Cancel
Save