zm_dev
liuliang 1 year ago
parent fa21212925
commit 99d1eaa027

@ -4,5 +4,8 @@
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
</annotationProcessing>
<bytecodeTargetLevel>
<module name="hrm-attendance" target="8" />
</bytecodeTargetLevel>
</component>
</project>

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="file://$MODULE_DIR$/../../../weaver/ecology/WEB-INF/lib" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$MODULE_DIR$/../../../weaver/ecology/WEB-INF/lib" />
</SOURCES>
<jarDirectory url="file://$MODULE_DIR$/../../../weaver/ecology/WEB-INF/lib" recursive="false" />
<jarDirectory url="file://$MODULE_DIR$/../../../weaver/ecology/WEB-INF/lib" recursive="false" type="SOURCES" />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="file://$MODULE_DIR$/../../../weaver/ecology/classbean" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../../easymock-4.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/hrm-attendance.iml" filepath="$PROJECT_DIR$/hrm-attendance.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/hrm-attendance.iml" filepath="$PROJECT_DIR$/.idea/hrm-attendance.iml" />
</modules>
</component>
</project>

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -0,0 +1,490 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="hrm-attendance" />
</artifacts-to-build>
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/.idea/hrm-attendance.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/api/attendance/vocation/VocationActionApi.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/AdjustStartingTimeEnum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/BalanceHandleEnum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/DelayTypeEnum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/QuotaChangeMethodEnum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/RemainderHandleEnum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/enums/StartingUnitEnum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/cmd/VocationCmd.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/HolidayGenerationWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/service/impl/VocationServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/util/VocationCommonUtil.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/web/VocationAction.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/test/TestBySchedulePaymentWay.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/test/TestSinglePaymentFullWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.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/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/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/service/vocationService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/service/VocationService.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/CommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/CommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/DateUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/DateUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/README.md" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceplan/README.md" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/README.md" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/README.md" beforeDir="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/CommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/CommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/util/DateUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/DateUtil.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/classes/com/engine/common/util/Utils.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/Utils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/weaver/formmode/customjavacode/modeexpand/DeleteCheckCalendar.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/weaver/formmode/customjavacode/modeexpand/DeleteCheckCalendar.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$/test/TestObj.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestObj.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="FxmlFile" />
<option value="Enum" />
<option value="Kotlin Class" />
<option value="Interface" />
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GitSEFilterConfiguration">
<file-type-list>
<filtered-out-file-type name="LOCAL_BRANCH" />
<filtered-out-file-type name="REMOTE_BRANCH" />
<filtered-out-file-type name="TAG" />
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list>
</component>
<component name="ProjectId" id="2U96adqKZl9N0O4Pzabp1q9QHuq" />
<component name="ProjectViewState">
<option name="showLibraryContents" value="true" />
<option name="showVisibilityIcons" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<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$/../../../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" />
<property name="project.structure.side.proportion" value="0.14124292" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\项目备份\考勤\hrm-attendance\src\weaver\formmode\customjavacode\modeexpand" />
<recent name="D:\项目备份\考勤\hrm-attendance\src\com\engine\attendance\component" />
<recent name="D:\项目备份\考勤\hrm-attendance\src\com\engine\attendance\workflow" />
<recent name="D:\项目备份\考勤\hrm-attendance\src\com\engine\attendance\attendancePlan" />
<recent name="D:\项目备份\考勤\hrm-attendance\src\com\engine\attendance\attendanceAnalysis" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.api.attendance.vocation" />
<recent name="com.engine.attendance.vacation.web" />
<recent name="com.engine.attendance.enums" />
<recent name="com.engine.common.util" />
<recent name="com.api.attendance.attendanceAnalysis" />
</key>
</component>
<component name="RunManager" selected="Application.TestObj">
<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="TestGetClockInPoint" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestGetClockInPoint" />
<module name="hrm-attendance" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestMergeAskForLeaveAndEvctionSchedule" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestMergeAskForLeaveAndEvctionSchedule" />
<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" />
<module name="hrm-attendance" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestSinglePaymentFullWay" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestSinglePaymentFullWay" />
<module name="hrm-attendance" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.TestObj" />
<item itemvalue="Application.TestSinglePaymentFullWay" />
<item itemvalue="Application.TestBySchedulePaymentWay" />
<item itemvalue="Application.TestGetClockInPoint" />
<item itemvalue="Application.TestMergeAskForLeaveAndEvctionSchedule" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="" />
<created>1692339514997</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1692339514997</updated>
<workItem from="1692339518784" duration="32000" />
<workItem from="1692340040940" duration="1135000" />
<workItem from="1692342264650" duration="1045000" />
<workItem from="1692348427448" duration="165000" />
<workItem from="1692582006773" duration="86000" />
<workItem from="1692862486751" duration="1476000" />
<workItem from="1692867519107" duration="5763000" />
<workItem from="1692930017581" duration="685000" />
<workItem from="1692932118593" duration="8584000" />
<workItem from="1693215733888" duration="1508000" />
<workItem from="1693217500388" duration="1719000" />
<workItem from="1693219944225" duration="2791000" />
<workItem from="1693223734291" duration="38000" />
<workItem from="1693275621669" duration="2705000" />
<workItem from="1693289775698" duration="5000" />
<workItem from="1693389476816" duration="24000" />
<workItem from="1693455269065" duration="959000" />
<workItem from="1693475436820" duration="6534000" />
<workItem from="1693532699817" duration="12509000" />
<workItem from="1693661235999" duration="594000" />
<workItem from="1693712928892" duration="14589000" />
<workItem from="1693792694888" duration="2850000" />
<workItem from="1693808697903" duration="3366000" />
<workItem from="1693877386447" duration="9053000" />
<workItem from="1693964352907" duration="24844000" />
<workItem from="1694051375998" duration="26412000" />
<workItem from="1694105584175" duration="591000" />
<workItem from="1694136883012" duration="27756000" />
<workItem from="1694396019903" duration="23316000" />
<workItem from="1694441834842" duration="4431000" />
<workItem from="1694482304694" duration="38659000" />
<workItem from="1694568645180" duration="20047000" />
<workItem from="1694656471239" duration="11646000" />
<workItem from="1694744114572" duration="6750000" />
<workItem from="1694768715754" duration="1522000" />
<workItem from="1695003518158" duration="24104000" />
<workItem from="1695092772073" duration="3655000" />
<workItem from="1695096840911" duration="26120000" />
<workItem from="1695173346187" duration="23490000" />
<workItem from="1695298552559" duration="1107000" />
<workItem from="1695303174990" duration="2204000" />
<workItem from="1695347237495" duration="19376000" />
<workItem from="1695553511162" duration="1832000" />
<workItem from="1695567565696" duration="2000" />
<workItem from="1695605419276" duration="21979000" />
<workItem from="1695692085116" duration="6447000" />
<workItem from="1695778505662" duration="3617000" />
<workItem from="1695792968619" duration="593000" />
<workItem from="1695809499955" duration="3071000" />
<workItem from="1695863703718" duration="1212000" />
<workItem from="1695883451866" duration="2058000" />
<workItem from="1696567506303" duration="23130000" />
<workItem from="1696648918530" duration="2443000" />
<workItem from="1696656774209" duration="3364000" />
<workItem from="1696728483294" duration="1958000" />
<workItem from="1696734032928" duration="1465000" />
<workItem from="1696743147790" duration="2683000" />
<workItem from="1696815185965" duration="2525000" />
<workItem from="1696829367590" duration="970000" />
<workItem from="1696914402478" duration="10222000" />
<workItem from="1696988336710" duration="1000000" />
<workItem from="1697001252777" duration="7027000" />
<workItem from="1697075777172" duration="961000" />
<workItem from="1697087513828" duration="8223000" />
<workItem from="1697163082165" duration="765000" />
<workItem from="1697175141666" duration="7184000" />
<workItem from="1697420341962" duration="1265000" />
<workItem from="1697526611270" duration="7126000" />
<workItem from="1697692534649" duration="17000" />
<workItem from="1697692567915" duration="18949000" />
<workItem from="1697766779048" duration="1107000" />
<workItem from="1697781370605" duration="14040000" />
<workItem from="1697962164517" duration="4364000" />
<workItem from="1698027923152" duration="2247000" />
<workItem from="1698030924575" duration="1073000" />
<workItem from="1698034198904" duration="479000" />
<workItem from="1698040998092" duration="1319000" />
<workItem from="1698042823107" duration="599000" />
<workItem from="1698044532659" duration="975000" />
<workItem from="1698052825712" duration="303000" />
<workItem from="1698074505519" duration="4142000" />
<workItem from="1698112102229" duration="5413000" />
<workItem from="1698118737181" duration="1681000" />
<workItem from="1698125114384" duration="2215000" />
<workItem from="1698127602580" duration="3070000" />
<workItem from="1698131838215" duration="1150000" />
<workItem from="1698133397947" duration="17706000" />
<workItem from="1698159833013" duration="3153000" />
<workItem from="1698197882990" duration="7332000" />
<workItem from="1698211990680" duration="2138000" />
<workItem from="1698214652467" duration="6152000" />
<workItem from="1698222529178" duration="4023000" />
<workItem from="1698247837601" duration="1033000" />
<workItem from="1698285046951" duration="3271000" />
<workItem from="1698289093518" duration="763000" />
<workItem from="1698290043354" duration="1159000" />
<workItem from="1698300434653" duration="2009000" />
<workItem from="1698302695697" duration="1620000" />
<workItem from="1698304471751" duration="1508000" />
<workItem from="1698306832195" duration="2655000" />
<workItem from="1698309897387" duration="5163000" />
<workItem from="1698390288454" duration="13183000" />
<workItem from="1698469491561" duration="21890000" />
<workItem from="1698591800387" duration="810000" />
<workItem from="1698629862640" duration="7694000" />
<workItem from="1698643545069" duration="14542000" />
<workItem from="1698682351498" duration="601000" />
<workItem from="1698716067461" duration="9614000" />
<workItem from="1698729774142" duration="25056000" />
<workItem from="1698764177164" duration="6279000" />
<workItem from="1698802661422" duration="7871000" />
<workItem from="1698817074470" duration="103000" />
<workItem from="1698817186422" duration="20092000" />
<workItem from="1698851593447" duration="598000" />
<workItem from="1698889582547" duration="4227000" />
<workItem from="1698903441548" duration="18222000" />
<workItem from="1698976461966" duration="6519000" />
<workItem from="1698989798127" duration="10759000" />
<workItem from="1699077797957" duration="11009000" />
<workItem from="1699170067846" duration="1000" />
<workItem from="1699231897173" duration="9180000" />
<workItem from="1699249312970" duration="13580000" />
<workItem from="1699277085466" duration="3406000" />
<workItem from="1699321801125" duration="20823000" />
<workItem from="1699367317403" duration="2736000" />
<workItem from="1699409280040" duration="31571000" />
<workItem from="1699453614678" duration="5113000" />
<workItem from="1699493679787" duration="8376000" />
<workItem from="1699508307707" duration="18732000" />
<workItem from="1699536866149" duration="2893000" />
<workItem from="1699546555621" duration="3842000" />
<workItem from="1699581139144" duration="23553000" />
<workItem from="1699698872978" duration="667000" />
<workItem from="1699795306178" duration="18557000" />
<workItem from="1699839546417" duration="10366000" />
<workItem from="1699852590390" duration="20996000" />
<workItem from="1699883122404" duration="5093000" />
<workItem from="1699925326190" duration="8896000" />
<workItem from="1699940140486" duration="38421000" />
<workItem from="1700026194548" duration="24782000" />
<workItem from="1700061652012" duration="859000" />
<workItem from="1700098710110" duration="34302000" />
<workItem from="1700146477670" duration="3056000" />
<workItem from="1700185074002" duration="10574000" />
<workItem from="1700199508725" duration="4449000" />
<workItem from="1700227183353" duration="3497000" />
<workItem from="1700302165324" duration="2382000" />
<workItem from="1700386918963" duration="14559000" />
<workItem from="1700443922898" duration="47543000" />
<workItem from="1700544798039" duration="5043000" />
<workItem from="1700550368194" duration="19115000" />
<workItem from="1700617767112" duration="7654000" />
<workItem from="1700631662957" duration="24095000" />
<workItem from="1700663022648" duration="5527000" />
<workItem from="1700704116298" duration="2704000" />
<workItem from="1700718326275" duration="20611000" />
<workItem from="1700745310982" duration="5767000" />
<workItem from="1700790471599" duration="120000" />
<workItem from="1700792146348" duration="5791000" />
<workItem from="1700805055640" duration="14860000" />
<workItem from="1700911912741" duration="3478000" />
<workItem from="1700922832332" duration="3184000" />
<workItem from="1701003586645" duration="4138000" />
<workItem from="1701048701474" duration="25552000" />
<workItem from="1701135211502" duration="9894000" />
<workItem from="1701149493079" duration="22234000" />
<workItem from="1701179622668" duration="4377000" />
<workItem from="1701221800791" duration="632000" />
<workItem from="1701222699216" duration="22066000" />
<workItem from="1701264331898" duration="5291000" />
<workItem from="1701308939846" duration="763000" />
<workItem from="1701310015014" duration="19670000" />
<workItem from="1701344692821" duration="3857000" />
<workItem from="1701396844222" duration="6519000" />
<workItem from="1701409172449" duration="14972000" />
<workItem from="1701657236334" duration="11669000" />
<workItem from="1701693919320" duration="306000" />
<workItem from="1701694449827" duration="605000" />
<workItem from="1701695856893" duration="706000" />
<workItem from="1701739719725" duration="8782000" />
<workItem from="1701754178519" duration="13111000" />
<workItem from="1701782398054" duration="4292000" />
<workItem from="1701826335733" duration="8249000" />
<workItem from="1701841441371" duration="25474000" />
<workItem from="1701913164341" duration="9301000" />
<workItem from="1701932512214" duration="305000" />
<workItem from="1701933687860" duration="33000" />
<workItem from="1701934448139" duration="14080000" />
<workItem from="1702015977727" duration="1889000" />
<workItem from="1702041570275" duration="62000" />
<workItem from="1702091888868" duration="571000" />
<workItem from="1702260044596" duration="18584000" />
<workItem from="1702299487315" duration="698000" />
<workItem from="1702345476899" duration="9027000" />
<workItem from="1702359471150" duration="24971000" />
<workItem from="1702387830195" duration="472000" />
<workItem from="1702431310438" duration="9072000" />
<workItem from="1702446757969" duration="637000" />
<workItem from="1702451213820" duration="1078000" />
<workItem from="1702452488557" duration="9578000" />
<workItem from="1702467949458" duration="874000" />
<workItem from="1702518620091" duration="30274000" />
<workItem from="1702604501544" duration="18857000" />
<workItem from="1702862913836" duration="22541000" />
<workItem from="1702950252730" duration="17920000" />
<workItem from="1703036799853" duration="1956000" />
<workItem from="1703050450608" duration="6733000" />
<workItem from="1703071059485" duration="6330000" />
<workItem from="1703122548150" duration="4366000" />
<workItem from="1703137084241" duration="13704000" />
<workItem from="1703208757025" duration="4253000" />
<workItem from="1703223465716" duration="12093000" />
<workItem from="1703469101483" duration="11137000" />
<workItem from="1703552217336" duration="18509000" />
<workItem from="1703639900804" duration="3358000" />
<workItem from="1703655988128" duration="11603000" />
<workItem from="1703679803847" duration="3276000" />
<workItem from="1703725646594" duration="28628000" />
<workItem from="1703771887749" duration="1639000" />
<workItem from="1703811686137" duration="8497000" />
<workItem from="1703835168171" duration="3122000" />
<workItem from="1704113096522" duration="1887000" />
<workItem from="1704158710782" duration="28896000" />
<workItem from="1704208617961" duration="28000" />
<workItem from="1704208662225" duration="3489000" />
<workItem from="1704245679445" duration="45158000" />
<workItem from="1704331947967" duration="38235000" />
<workItem from="1704418019602" duration="12095000" />
<workItem from="1704461183491" duration="932000" />
<workItem from="1704527808201" duration="6902000" />
<workItem from="1704605008241" duration="1460000" />
<workItem from="1704624857172" duration="13062000" />
<workItem from="1704677723452" duration="30104000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<breakpoint enabled="true" type="java-exception">
<properties class="java.util.NoSuchElementException" package="java.util" />
<option name="timeStamp" value="18" />
</breakpoint>
<breakpoint enabled="true" type="java-exception">
<properties class="java.util.ConcurrentModificationException" package="java.util" />
<option name="timeStamp" value="19" />
</breakpoint>
<breakpoint enabled="true" type="java-exception">
<properties class="java.lang.ArithmeticException" package="java.lang" />
<option name="timeStamp" value="54" />
</breakpoint>
<breakpoint enabled="true" type="java-exception">
<properties class="java.lang.IllegalArgumentException" package="java.lang" />
<option name="timeStamp" value="73" />
</breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/test/TestGetClockInPoint.java</url>
<line>301</line>
<option name="timeStamp" value="28" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/test/TestMergeAskForLeaveAndEvctionSchedule.java</url>
<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/SinglePaymentInFullWay.java</url>
<line>294</line>
<option name="timeStamp" value="91" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java</url>
<line>279</line>
<option name="timeStamp" value="93" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
<watch expression="((java.util.ArrayList)clcokInTimeData).get(1)" custom="java.util.ArrayList" />
<watch expression="afterClcokInTimeData" />
<watch expression="((HashMap.Node)((HashMap)beforeClcokInTimeData).entrySet().toArray()[0]).getValue()" custom="java.util.HashMap.Node,java.util.HashMap" />
<watch expression="clcokInTimeData" />
</configuration>
</watches-manager>
</component>
</project>

@ -1214,3 +1214,348 @@
2023-12-15 17:09:25,338 [main] [com.engine.attendance.attendanceanalysis.cmd.GetClockInPointCmd] [INFO] - clcokInTimeData :[[{2023-11-12 12:00|1|4={signtime=11:20:00, id=48, userid=53, signdate=2023-11-12}}, {2023-11-12 13:00|0|5={signtime=13:20:00, id=48, userid=53, signdate=2023-11-12}}]]
2023-12-15 17:14:25,334 [Timer-0] [A2] [INFO] - rootPath == null
2023-12-15 17:14:25,336 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties
2024-01-04 16:01:06,194 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 16:01:34,298 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 17:30:19,889 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 17:30:19,951 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年
2024-01-04 17:30:32,063 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 17:30:32,116 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年
2024-01-04 17:31:25,205 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 17:31:25,274 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年
2024-01-04 17:31:46,654 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 17:32:06,681 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年
2024-01-04 18:49:15,691 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 18:49:15,748 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年
2024-01-04 18:49:33,069 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 18:49:45,095 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay] [INFO] - userId : [53] 工龄小于1年
2024-01-04 18:56:34,359 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 19:32:37,994 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:32:38,065 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 19:41:37,462 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:43:07,328 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 19:44:44,053 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:44:44,123 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 19:47:01,492 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:47:41,733 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:48:20,036 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:48:20,097 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 19:49:14,901 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-11-11]
2024-01-04 19:51:28,347 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 19:51:28,352 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00]
2024-01-04 19:51:28,360 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2025-12-31}]
2024-01-04 19:52:37,555 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 19:52:37,559 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00]
2024-01-04 19:52:37,571 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2025-12-31}]
2024-01-04 19:53:40,656 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 19:53:47,389 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00]
2024-01-04 19:54:33,649 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2025-12-31}]
2024-01-04 19:55:00,867 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 19:55:00,871 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00]
2024-01-04 19:55:00,880 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2025-12-31}]
2024-01-04 20:00:39,417 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 20:00:39,421 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00]
2024-01-04 20:00:39,431 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-12-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2025-12-31}]
2024-01-04 20:02:56,827 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:02:56,831 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2024-12-16 00:00]
2024-01-04 20:02:56,839 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2025-01-01, jqid=112, qsrq=2021-06-01, ffsj=2024-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2025-12-31}]
2024-01-04 20:05:32,907 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:05:32,911 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00]
2024-01-04 20:05:55,017 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:05:55,022 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00]
2024-01-04 20:06:28,986 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:06:28,990 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00]
2024-01-04 20:07:47,596 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:07:47,600 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00]
2024-01-04 20:07:47,618 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2032-01-01, jqid=112, qsrq=2021-06-01, ffsj=2031-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2032-12-31}]
2024-01-04 20:08:08,092 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:08:08,096 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2031-12-16 00:00]
2024-01-04 20:08:18,983 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2032-01-01, jqid=112, qsrq=2021-06-01, ffsj=2031-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2032-12-31}]
2024-01-04 20:09:11,615 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:09:11,619 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2026-12-16 00:00]
2024-01-04 20:09:11,628 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2027-01-01, jqid=112, qsrq=2021-06-01, ffsj=2026-12-16 00:00:00, lyid=18, ktsc=5.0, jzrq=2027-12-31}]
2024-01-04 20:10:30,648 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:10:30,655 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:10:30,691 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}]
2024-01-04 20:11:30,908 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:11:30,912 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:11:47,933 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}]
2024-01-04 20:12:13,079 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:12:13,083 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:12:13,093 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}]
2024-01-04 20:12:24,597 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:12:24,600 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:14:31,160 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=10.0, jzrq=2028-12-31}]
2024-01-04 20:14:56,389 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:14:56,393 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:14:56,406 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}]
2024-01-04 20:15:28,452 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:15:28,457 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:18:17,238 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}]
2024-01-04 20:19:19,907 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:19:19,912 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:20:14,913 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}]
2024-01-04 20:30:32,397 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:30:32,402 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:31:22,099 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}]
2024-01-04 20:31:30,633 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:31:30,639 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:31:30,657 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=8.0, jzrq=2028-12-31}]
2024-01-04 20:45:46,881 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:45:46,885 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:45:46,903 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=12.0, jzrq=2028-12-31}]
2024-01-04 20:46:05,873 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:46:05,878 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:48:11,480 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=12.0, jzrq=2028-12-31}]
2024-01-04 20:49:55,670 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 20:49:55,673 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2027-12-16 00:00]
2024-01-04 20:49:55,682 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2028-01-01, jqid=112, qsrq=2021-06-01, ffsj=2027-12-16 00:00:00, lyid=18, ktsc=1.0, jzrq=2028-12-31}]
2024-01-04 21:20:04,487 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-04 21:20:04,491 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00]
2024-01-04 21:20:52,694 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:20:52,698 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00]
2024-01-04 21:21:12,708 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:21:12,714 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00]
2024-01-04 21:21:12,720 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-12-01, ffsj=2021-12-16 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-02-31}]
2024-01-04 21:21:41,976 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:21:41,980 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00]
2024-01-04 21:21:58,202 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:21:58,206 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00]
2024-01-04 21:22:10,824 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:22:56,917 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-16 00:00]
2024-01-04 21:25:22,291 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:25:22,295 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:25:47,889 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:25:47,893 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-01-16 00:00]
2024-01-04 21:25:55,261 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:25:55,266 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:26:02,439 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:26:02,445 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-03-16 00:00]
2024-01-04 21:26:27,113 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:26:27,118 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-01-16 00:00]
2024-01-04 21:27:36,529 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:27:36,533 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:27:49,091 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:27:49,096 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-11 00:00]
2024-01-04 21:27:49,099 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-26, jqid=112, qsrq=2021-12-01, ffsj=2022-02-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-26}]
2024-01-04 21:28:03,539 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:28:03,543 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-11 00:00]
2024-01-04 21:28:03,545 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-26, jqid=112, qsrq=2021-12-01, ffsj=2022-02-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-03-26}]
2024-01-04 21:28:15,423 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:28:15,427 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00]
2024-01-04 21:28:31,372 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:28:31,378 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00]
2024-01-04 21:28:44,996 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:28:44,999 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-12-11 00:00]
2024-01-04 21:28:45,001 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-12-26, jqid=112, qsrq=2021-12-01, ffsj=2022-12-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-01-26}]
2024-01-04 21:29:13,170 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:29:36,125 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-12-11 00:00]
2024-01-04 21:29:36,127 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-12-26, jqid=112, qsrq=2021-12-01, ffsj=2022-12-11 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-01-26}]
2024-01-04 21:29:44,020 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:29:44,028 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:29:57,101 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:29:57,105 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:30:20,902 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:30:20,907 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:30:28,038 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:30:56,063 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:31:03,621 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:31:03,624 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00]
2024-01-04 21:31:45,483 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:31:45,490 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-17 00:00]
2024-01-04 21:31:45,492 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-12-01, ffsj=2021-12-17 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-02-01}]
2024-01-04 21:32:07,160 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:32:07,166 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-15 00:00]
2024-01-04 21:32:07,168 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-02, jqid=112, qsrq=2021-12-01, ffsj=2022-02-15 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-02}]
2024-01-04 21:32:20,353 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:32:20,361 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-14 00:00]
2024-01-04 21:32:20,365 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-01, jqid=112, qsrq=2021-12-01, ffsj=2022-02-14 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}]
2024-01-04 21:32:37,281 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:32:37,285 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-13 00:00]
2024-01-04 21:32:37,288 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-28, jqid=112, qsrq=2021-12-01, ffsj=2022-02-13 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-03-28}]
2024-01-04 21:32:43,219 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:36:34,419 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-13 00:00]
2024-01-04 21:36:34,422 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-28, jqid=112, qsrq=2021-12-01, ffsj=2022-02-13 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-03-28}]
2024-01-04 21:36:43,080 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:36:49,942 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-15 00:00]
2024-01-04 21:36:49,945 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-02, jqid=112, qsrq=2021-12-01, ffsj=2022-02-15 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-02}]
2024-01-04 21:36:57,575 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:37:05,125 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-14 00:00]
2024-01-04 21:37:05,128 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-01, jqid=112, qsrq=2021-12-01, ffsj=2022-02-14 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}]
2024-01-04 21:39:28,496 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:39:35,177 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:40:19,759 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:40:19,763 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:40:38,258 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:40:38,263 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:40:48,592 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:40:48,596 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:40:54,757 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:41:04,210 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:41:13,516 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:41:48,951 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:42:12,425 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:42:22,554 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-02-14 00:00]
2024-01-04 21:42:22,557 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-03-01, jqid=112, qsrq=2021-12-01, ffsj=2022-02-14 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}]
2024-01-04 21:42:40,090 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:42:40,095 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:43:27,865 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:43:27,870 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:43:40,730 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:43:40,735 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:43:51,605 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:43:51,611 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:44:00,735 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:44:00,740 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2022-01-17 00:00]
2024-01-04 21:44:00,742 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-02-01, jqid=112, qsrq=2021-12-01, ffsj=2022-01-17 00:00:00, lyid=18, ktsc=0.0, jzrq=2022-04-01}]
2024-01-04 21:44:22,908 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:44:22,916 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:44:32,848 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:45:31,188 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:45:51,041 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:45:51,047 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:45:56,469 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:48:12,549 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:49:16,996 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:49:17,000 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-11 00:00]
2024-01-04 21:49:41,511 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:49:41,515 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-11 00:00]
2024-01-04 21:51:21,637 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:51:33,350 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 21:51:52,700 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:51:52,709 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-10 00:00]
2024-01-04 21:52:03,478 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:53:20,827 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : [2021-12-10 00:00]
2024-01-04 21:53:30,015 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 21:53:30,021 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - excuteTime : []
2024-01-04 22:13:42,454 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 22:13:59,683 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 22:14:33,604 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 22:14:33,607 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00]
2024-01-04 22:14:58,647 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 22:14:58,650 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00]
2024-01-04 22:15:48,485 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 22:15:48,488 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00]
2024-01-04 22:16:45,015 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-04 22:16:45,018 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00]
2024-01-05 09:37:36,977 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:37:36,980 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00]
2024-01-05 09:38:11,185 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:38:11,185 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2021-12-29 00:00]
2024-01-05 09:45:41,537 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:45:41,540 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00]
2024-01-05 09:45:50,690 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:45:50,693 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00]
2024-01-05 09:46:03,981 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:46:03,984 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00]
2024-01-05 09:47:46,511 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:47:46,514 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2022-01-29 00:00]
2024-01-05 09:47:46,522 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-12-01, ffsj=2022-01-29 00:00:00, lyid=18, ktsc=0.0, jzrq=2023-12-31}]
2024-01-05 09:48:04,089 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:48:04,098 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:48:13,666 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:48:13,668 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:48:13,676 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2024-01-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=0.0, jzrq=2024-12-31}]
2024-01-05 09:48:24,733 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:48:24,736 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:48:39,159 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2024-01-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=0.0, jzrq=2024-12-31}]
2024-01-05 09:51:39,020 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:51:39,024 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:51:39,036 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2024-01-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=1.0, jzrq=2024-12-31}]
2024-01-05 09:55:20,173 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:55:20,176 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:55:41,044 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:55:41,046 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:56:35,478 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:56:35,482 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:56:45,167 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:56:45,170 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 09:57:09,920 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 09:57:09,923 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 10:51:56,457 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 10:51:56,459 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 10:51:56,468 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-12-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=1.0, jzrq=2024-12-01}]
2024-01-05 10:52:31,846 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-05 10:52:31,849 [main] [com.engine.attendance.vacation.job.holidaygeneration.tactics.BySchedulePaymentWay] [INFO] - excuteTime : [2023-01-29 00:00]
2024-01-05 10:52:31,858 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-12-01, jqid=112, qsrq=2021-12-01, ffsj=2023-01-29 00:00:00, lyid=18, ktsc=1.0, jzrq=2024-12-01}]
2024-01-05 10:57:31,880 [Timer-0] [A2] [INFO] - rootPath == null
2024-01-05 10:57:31,881 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties
2024-01-07 21:44:13,262 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-12-01]
2024-01-07 21:44:13,268 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-08-10, jqid=112, qsrq=2021-12-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-08-16}]
2024-01-07 21:49:13,293 [Timer-0] [A2] [INFO] - rootPath == null
2024-01-07 21:49:13,294 [Timer-0] [A2] [INFO] - filePath == nullWEB-INF\prop\isSyncLog4j.properties
2024-01-08 19:17:59,475 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:17:59,487 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-08-10, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-08-16}]
2024-01-08 19:20:20,611 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:20:20,625 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-08 19:22:10,656 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:22:10,661 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-08 19:22:27,685 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:22:28,912 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-08 19:23:33,145 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:23:53,265 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-08 19:24:44,334 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:24:48,833 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-08 19:25:06,820 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:26:02,579 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-10 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-08 19:26:38,064 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:26:38,078 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:26:48,916 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:29:07,926 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:29:47,698 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:29:47,712 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:33:01,437 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:39:59,804 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:40:04,858 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:40:04,887 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:40:15,286 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:40:39,806 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:42:10,174 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:42:12,597 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2022-12-10 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:42:18,618 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:42:53,183 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2022-12-10 00:00:00, lyid=18, ktsc=4.5, jzrq=2022-12-31}]
2024-01-08 19:43:13,054 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:44:19,568 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}]
2024-01-08 19:44:30,896 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:45:22,057 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}]
2024-01-08 19:45:38,904 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:46:03,844 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}]
2024-01-08 19:47:02,276 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:47:22,613 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2023-01-01, jqid=112, qsrq=2021-06-01, ffsj=2023-06-06 00:00:00, lyid=18, ktsc=5.0, jzrq=2023-12-31}]
2024-01-08 19:48:06,544 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:50:22,369 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 19:52:44,144 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:54:08,727 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 19:54:14,459 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:55:43,993 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 19:56:07,463 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:57:39,872 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 19:57:50,235 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 19:57:50,249 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-11-06 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 20:02:34,254 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:02:52,264 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=5.0, jzrq=2022-12-31}]
2024-01-08 20:02:57,228 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:03:29,746 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=5.0, jzrq=2022-12-31}]
2024-01-08 20:03:48,297 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:03:57,882 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2022-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-31 00:00:00, lyid=18, ktsc=5.0, jzrq=2022-12-31}]
2024-01-08 20:04:30,344 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:04:37,896 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 20:04:42,540 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:04:55,633 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 20:05:16,955 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:05:22,705 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-08 20:05:33,387 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:05:58,363 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-08 20:06:18,910 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:06:32,006 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=0.0, jzrq=2021-12-31}]
2024-01-08 20:41:55,105 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:41:55,109 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-08 20:42:02,178 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:42:02,184 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-08 20:42:19,537 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:42:19,542 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, jzrq=2021-12-31}]
2024-01-08 20:42:59,760 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:43:24,797 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 20:43:30,603 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:43:41,011 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]
2024-01-08 20:43:54,392 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - getAfterAdjustTime qsrq : [2021-06-01]
2024-01-08 20:44:44,333 [main] [com.engine.attendance.vacation.util.VocationCommonUtil] [INFO] - updateHolidayBalance dataMap:[{ygid=53, sxrq=2021-01-01, jqid=112, qsrq=2021-06-01, ffsj=2021-12-01 00:00:00, lyid=18, ktsc=2.5, jzrq=2021-12-31}]

@ -0,0 +1,14 @@
package com.api.attendance.vocation;
import com.engine.attendance.vacation.web.VocationAction;
import lombok.extern.slf4j.Slf4j;
import javax.ws.rs.Path;
@Path("/attendance/vocation")
@Slf4j
public class VocationActionApi extends VocationAction {
}

@ -441,19 +441,19 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
insertHoliDayParam.put("ktsc",itemduration);
String zdyqsc = Util.null2String(workTimeBeLateItems.get(0).get("zdyqsc"));
if ("0".equals(zdyqsc)){
if (DelayTypeEnum.ONE_MONTH.getKey().equals(zdyqsc)){
//一个月
insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),1,DateUtil.yyyyMMdd));
}else if ("1".equals(zdyqsc)){
}else if (DelayTypeEnum.TWO_MONTH.getKey().equals(zdyqsc)){
//两个月
insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),2,DateUtil.yyyyMMdd));
}else if ("2".equals(zdyqsc)){
}else if (DelayTypeEnum.THREE_MONTH.getKey().equals(zdyqsc)){
//三个月
insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),3,DateUtil.yyyyMMdd));
}else if ("3".equals(zdyqsc)){
}else if (DelayTypeEnum.HALF_YEAR.getKey().equals(zdyqsc)){
//半年
insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),6,DateUtil.yyyyMMdd));
}else if ("4".equals(zdyqsc)){
}else if (DelayTypeEnum.ONE_YEAR.getKey().equals(zdyqsc)){
//一年
insertHoliDayParam.put("yqsxrq",DateUtil.nextMonth(insertHoliDayParam.get("jzrq").toString(),12,DateUtil.yyyyMMdd));
}

@ -37,7 +37,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa");
Map<String,Object> resultMap = Maps.newHashMap();
String sql = "select dxlx,dataid,dx from uf_syzz where modeid=?";
String sql = "select dxlx,dataid,dx from uf_jcl_syzz where modeid=?";
List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId);
sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,resourceId);

@ -68,7 +68,7 @@ public class PersongroupCommonUtil {
String sql = "select ksts,jsts,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?";
List<Map<String,Object>> detailDataList = DbTools.getSqlToList(sql,id);
//规律排班适用组织数据
sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?";
sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?";
// List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId,id);
//规律排班所用企业日历数据
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";

@ -59,7 +59,7 @@ public class DayRegularScheduling implements RegularScheduling{
String sql = "select ksts,jsts,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?";
List<Map<String,Object>> detailDataList = DbTools.getSqlToList(sql,id);
//规律排班适用组织数据
sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?";
sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?";
List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId,id);
//规律排班所用企业日历数据
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";

@ -61,7 +61,7 @@ public class MonthRegularScheduling implements RegularScheduling{
String sql = "select ksr,jsr,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?";
List<Map<String,Object>> detailDataList = DbTools.getSqlToList(sql,id);
//规律排班适用组织数据
sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?";
sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?";
List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId,id);
//规律排班所用企业日历数据
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";

@ -60,7 +60,7 @@ public class WeekRegularScheduling implements RegularScheduling{
String sql = "select ksxq,jsxq,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?";
List<Map<String,Object>> detailDataList = DbTools.getSqlToList(sql,id);
//规律排班适用组织数据
sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?";
sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?";
List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId,id);
//规律排班所用企业日历数据
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";

@ -61,7 +61,7 @@ public class YearRegularScheduling implements RegularScheduling{
String sql = "select ksrq,jsrq,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?";
List<Map<String,Object>> detailDataList = DbTools.getSqlToList(sql,id);
//规律排班适用组织数据
sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?";
sql = "select dx,dxlx,aqjb from uf_jcl_syzz where modeid=? and dataid=?";
List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId,id);
//规律排班所用企业日历数据
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";

@ -0,0 +1,32 @@
package com.engine.attendance.enums;
import com.finance.toolkit.BaseEnum;
/**
*
*/
public enum AdjustStartingTimeEnum implements BaseEnum {
NO_ADJUST("0","不调整"),
NEXT_MONTH("1","调整为下月1日"),
BY_SEGMENT_TIME("2","按分隔日期调整"),
NOW_MONTH("3","调整为本月1日");
private String key;
private String value;
AdjustStartingTimeEnum(String key, String value){
this.key=key;
this.value=value;
}
@Override
public String getKey() {
return this.key;
}
@Override
public String getValue() {
return this.value;
}
}

@ -0,0 +1,29 @@
package com.engine.attendance.enums;
import com.finance.toolkit.BaseEnum;
public enum BalanceHandleEnum implements BaseEnum {
CANCEL("0","作废"),
DELAY("1","延期"),
SALARY_CALCULATION("2","计薪");
private String key;
private String value;
BalanceHandleEnum(String key, String value){
this.key=key;
this.value=value;
}
@Override
public String getKey() {
return this.key;
}
@Override
public String getValue() {
return this.value;
}
}

@ -0,0 +1,31 @@
package com.engine.attendance.enums;
import com.finance.toolkit.BaseEnum;
public enum DelayTypeEnum implements BaseEnum {
ONE_MONTH("0","一个月"),
TWO_MONTH("1","两个月"),
THREE_MONTH("2","三个月"),
HALF_YEAR("3","半年"),
ONE_YEAR("4","一年");
private String key;
private String value;
DelayTypeEnum(String key, String value){
this.key=key;
this.value=value;
}
@Override
public String getKey() {
return this.key;
}
@Override
public String getValue() {
return this.value;
}
}

@ -0,0 +1,28 @@
package com.engine.attendance.enums;
import com.finance.toolkit.BaseEnum;
public enum QuotaChangeMethodEnum implements BaseEnum {
NO_CONVERT("0","不折算"),
CONVERT("1","折算"),
DIVIDE_QUOTA("2","取分段额度");
private String key;
private String value;
QuotaChangeMethodEnum(String key, String value){
this.key=key;
this.value=value;
}
@Override
public String getKey() {
return this.key;
}
@Override
public String getValue() {
return this.value;
}
}

@ -0,0 +1,31 @@
package com.engine.attendance.enums;
import com.finance.toolkit.BaseEnum;
public enum RemainderHandleEnum implements BaseEnum {
ROUND_UP_FOUR("0","四舍五入保留4位小数"),
ROUND_UP_TWO("1","四舍五入保留2位小数"),
DOWN_ZERO_POINT_FIVE("2","向下取0.5的倍数"),
UP_ZERO_POINT_FIVE("3","向上取0.5的倍数"),
ROUND_DOWN("4","向下取整"),
ROUND_UP("5","向上取整");
private String key;
private String value;
RemainderHandleEnum(String key, String value){
this.key=key;
this.value=value;
}
@Override
public String getKey() {
return this.key;
}
@Override
public String getValue() {
return this.value;
}
}

@ -0,0 +1,35 @@
package com.engine.attendance.enums;
import com.finance.toolkit.BaseEnum;
/**
*
*/
public enum StartingUnitEnum implements BaseEnum {
NATURAL_YEAR("0","自然年"),
STARTING_YEAR("1","起算年"),
NATURAL_MONTH("2","自然月"),
STARTING_MONTH("3","起算月"),
NATURAL_WEEK("4","自然周"),
STARTING_WEEK("5","起算周"),
NATURAL_DAY("6","自然天");
private String key;
private String value;
StartingUnitEnum(String key, String value){
this.key=key;
this.value=value;
}
@Override
public String getKey() {
return this.key;
}
@Override
public String getValue() {
return this.value;
}
}

@ -0,0 +1,50 @@
package com.engine.attendance.vacation.cmd;
import com.engine.attendance.component.persongroup.job.scheduling.tactics.RegularScheduling;
import com.engine.attendance.vacation.job.holidaygeneration.tactics.HolidayGenerationWay;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.common.util.Utils;
import com.engine.core.interceptor.CommandContext;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
@Slf4j
public class VocationCmd extends AbstractCommonCommand<Map<String,Object>> {
@Override
public BizLogContext getLogContext() {
return null;
}
public VocationCmd(Map<String,Object> params){
this.params=params;
}
private List<HolidayGenerationWay> rulers;
{
rulers = new Utils<HolidayGenerationWay>().getAllClassByInterface(HolidayGenerationWay.class);
}
@Override
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("VocationCmd params: [{}]",params);
String edfffs = Util.null2String(vocationList.get(0).get("edfffs"));
for (HolidayGenerationWay holidayGenerationWay :rulers){
if (holidayGenerationWay.support(Integer.valueOf(edfffs))){
holidayGenerationWay.compute(params);
}
}
return null;
}
}

@ -1,12 +1,20 @@
package com.engine.attendance.vacation.job.holidaygeneration;
import com.engine.attendance.attendanceplan.service.AttendancePlanService;
import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl;
import com.engine.attendance.vacation.service.VocationService;
import com.engine.attendance.vacation.service.impl.VocationServiceImpl;
import com.engine.common.util.ServiceUtil;
import com.engine.common.util.Utils;
import com.google.common.collect.Maps;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.Map;
public class HolidayGenerationJob extends BaseCronJob {
private VocationService basicsetService = ServiceUtil.getService(VocationServiceImpl.class);
/**
* 10
*/
@ -21,6 +29,10 @@ public class HolidayGenerationJob extends BaseCronJob {
Map<String,String> formmodeIdMap = Utils.getFormmodeIdMap();
//假期额度模块id
String modeId = formmodeIdMap.get("uf_jcl_kq_jqed");
Map<String, Object> params = Maps.newHashMap();
params.put("modeId",modeId);
params.put("releaseDate",releaseDate);
basicsetService.generateVocation(params);
}
}

@ -0,0 +1,21 @@
package com.engine.attendance.vacation.job.holidaygeneration.tactics;
import java.util.Map;
/**
*
*/
public class ByIntervalPayMentWay implements HolidayGenerationWay{
@Override
public boolean support(int personClassfiy) {
if (personClassfiy == 2){
return true;
}
return false;
}
@Override
public void compute(Map<String, Object> data) {
}
}

@ -0,0 +1,262 @@
package com.engine.attendance.vacation.job.holidaygeneration.tactics;
import com.engine.attendance.enums.CheckBoxEnum;
import com.engine.attendance.enums.QuotaChangeMethodEnum;
import com.engine.attendance.enums.StartingUnitEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
/**
*
*/
@Slf4j
public class BySchedulePaymentWay implements HolidayGenerationWay{
@Override
public boolean support(int personClassfiy) {
if (personClassfiy == 1){
return true;
}
return false;
}
@Override
public void compute(Map<String, Object> data) {
String userId = Util.null2String(data.get("userId"));
String releaseDate = Util.null2String(data.get("releaseDate"));
String cover = Util.null2String(data.get("cover"));
if ("".equals(releaseDate)){
releaseDate = DateUtil.getCurrentTime();
}
List<Map<String,Object>> vocationList = (List<Map<String,Object>>)data.get("vocationList");
//起算日期
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
//额度有效期间
String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz"));
//额度有效期间单位
String edyxq = Util.null2String(vocationList.get(0).get("edyxq"));
//累计承认工龄月份数栏位值
String ljcrglyfslwz= Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
//依据字段
String yjzd= Util.null2String(vocationList.get(0).get("yjzd"));
//调整起算日期策略
String dzqsrq= Util.null2String(vocationList.get(0).get("dzqsrq"));
//分割日期
String fgrq= Util.null2String(vocationList.get(0).get("fgrq"));
//提前执行发放操作的天数
Integer dqtqffts = Integer.valueOf(Util.null2String(vocationList.get(0).get("dqtqffts")));
//执行发放的时间点
String ffdtffsj = Util.null2String(vocationList.get(0).get("ffdtffsj"));
//入职当期额度按比例折算
String rzdqedablzs = Util.null2String(vocationList.get(0).get("rzdqedablzs"));
//首次获得额度按比例折算
String schdedablzs = Util.null2String(vocationList.get(0).get("schdedablzs"));
//额度变更时额度处理方式
String edbgsedclfs = Util.null2String(vocationList.get(0).get("edbgsedclfs"));
//额度单位
String eddw = Util.null2String(vocationList.get(0).get("edbgsedclfs"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
//首次获得额度控制生效日期
String schdedkzsxrq = Util.null2String(vocationList.get(0).get("schdedkzsxrq"));
qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq,dzqsrq,fgrq);
for (Map<String, Object> vocationMap : vocationList) {
vocationMap.put("qsrq", qsrq);
}
//相差天数
int betweenDays = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]);
//相差月份
int betweenMonth = DateUtil.getBetWeenMonths(qsrq, releaseDate.split(" ")[0]);
//总工龄天数
int allWorkDays = Double.valueOf(ljcrglyfslwz).intValue() * 30 + betweenDays;
//总月数
int allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue();
//执行日期
Map<String, Object> insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate);
List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return;
}
String sxrq = insertHoliDayParam.get("sxrq").toString();
//实际休息时长
double restTime = 0;
//工龄小于1年的新员工,且额度有效期单位为自然年
if (allMonths < 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs) || CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) {
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate);
} else {
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate);
}
insertHoliDayParam.put("sxrq", DateUtil.nextYear(releaseDate.split(" ")[0], 1, DateUtil.yyyyMMdd));
insertHoliDayParam.put("ktsc", restTime);
} else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
//入职不满一年,且入职当期额度按比例折算
if (CheckBoxEnum.CHECKED.getKey().equals(rzdqedablzs) && betweenMonth < 12
&& sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
//起算年和发生日期在同一年,生成假期为起算年的当年
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate);
} else {
if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs)) {
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT,releaseDate);
} else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) {
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT,releaseDate);
}
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){
int betweenYear = DateUtil.getBetWeenYears(qsrq,releaseDate.split(" ")[0]);
Map<String,Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList,betweenYear,yjzd);
int occurMonths = DateUtil.getTime(releaseDate).getMonthValue();
int StartMonths = DateUtil.getTime(qsrq).getMonthValue();
int months = occurMonths-StartMonths;
if (months < 0){
months = 12-StartMonths+occurMonths;
}
String stage = String.valueOf(months);
if (months < 10){
stage = "0"+stage;
}
if (vocationMap.size() >0){
restTime = Double.valueOf(vocationMap.get("fdsc"+stage).toString());
}else {
restTime=0;
}
}
insertHoliDayParam.put("ktsc",restTime);
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye",insertHoliDayParam,dataList);
}
public double getRestTime(Map<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 nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd);
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
//提前执行发放操作的天数
int dqtqffts = Integer.valueOf(Util.null2String(vocationList.get(0).get("dqtqffts")));
//执行发放的时间点
String ffdtffsj = Util.null2String(vocationList.get(0).get("ffdtffsj"));
int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue();
String nowEndYearTime = releaseDate.split("-")[0]+"-12-31";
String forWardTime = DateUtil.beforeDay(nowEndYearTime,dqtqffts) +" "+ffdtffsj;
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(forWardTime)) >=0){
String nextYear = DateUtil.nextYear(releaseDate,1,DateUtil.yyyy);
releaseDate = nextYear +"-01-01";
}
int qsrqMonths = DateUtil.getDays(qsrq,Calendar.MONTH);
int releaseDateMonths = DateUtil.getDays(releaseDate,Calendar.MONTH);
double restTime=0.0;
//折算
if (changeMethodEnum == QuotaChangeMethodEnum.CONVERT){
int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
if (beginYearMonth < 0){
beginYearMonth = 0;
}
beginYearMonth = beginYearMonth+seniority;
int endYearMonth = DateUtil.getBetWeenMonths(qsrq,nextSxrq);
endYearMonth = endYearMonth+seniority;
int beginYear = beginYearMonth/12;
int endYear = endYearMonth/12;
int endYearRemainder = endYearMonth%12;
Map<String,Object> beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd);
Map<String,Object> endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd);
double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc")));
double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc")));
//残年分割日期
String divideTime = DateUtil.beforeMonth(nextSxrq,endYearRemainder);
divideTime = DateUtil.nextMonth(divideTime,1,DateUtil.yyyyMM)+"-01";
int divideTimeMonths = DateUtil.getDays(divideTime,Calendar.MONTH);
int yearDays = DateUtil.getDays(sxrq, Calendar.DAY_OF_YEAR);
if (beginEdktsc == endEdktsc){
//当前后额定可休时长一样时,代表没有残年情况
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
//生成起算日期当年的假期余额,通常用于没有工作经验的新员工
int months = releaseDateMonths-qsrqMonths+1;
restTime = getRestTime(months,endYearmap);
}else {
restTime = getRestTime(releaseDateMonths,endYearmap);
}
}else {
//考虑残年
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
//生成起算日期当年的假期余额,通常用于有工作经验的新员工
if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(divideTime)) <0){
int months = releaseDateMonths-qsrqMonths+1;
restTime = getRestTime(months,beginYearmap);
}else {
int months = releaseDateMonths-divideTimeMonths+1;
restTime = getRestTime(months,endYearmap);
}
}else {
int months = releaseDateMonths-qsrqMonths;
restTime = getRestTime(months,endYearmap);
}
}else {
if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(divideTime)) <0){
int months = releaseDateMonths-qsrqMonths+1;
restTime = getRestTime(months,beginYearmap);
}else {
int months = releaseDateMonths-divideTimeMonths+1;
restTime = getRestTime(months,endYearmap);
}
}
}
}else {
//不折算
int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
if (beginYearMonth < 0){
beginYearMonth = 0;
}
beginYearMonth = beginYearMonth+seniority;
int beginYear = beginYearMonth/12;
Map<String,Object> beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd);
restTime = getRestTime(releaseDateMonths,beginYearmap);
}
return restTime;
}
public Double getRestTime(int i,Map<String,Object> endYearmap){
String str = String.valueOf(i);
if (i < 10){
str = "0"+str;
}
String fdsc = Util.null2String(endYearmap.get("fdsc"+str));
if ("".equals(fdsc)){
fdsc="0";
}
return Double.valueOf(fdsc);
}
}

@ -0,0 +1,10 @@
package com.engine.attendance.vacation.job.holidaygeneration.tactics;
import java.util.Map;
public interface HolidayGenerationWay {
boolean support(int personClassfiy);
void compute(Map<String,Object> requestList);
}

@ -0,0 +1,22 @@
package com.engine.attendance.vacation.job.holidaygeneration.tactics;
import java.util.Map;
/**
*
*/
public class OneTimePayMentWay implements HolidayGenerationWay{
@Override
public boolean support(int personClassfiy) {
if (personClassfiy == 3){
return true;
}
return false;
}
@Override
public void compute(Map<String, Object> data) {
}
}

@ -0,0 +1,343 @@
package com.engine.attendance.vacation.job.holidaygeneration.tactics;
import com.engine.attendance.enums.CheckBoxEnum;
import com.engine.attendance.enums.QuotaChangeMethodEnum;
import com.engine.attendance.enums.StartingUnitEnum;
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
/**
*
*/
@Slf4j
public class SinglePaymentInFullWay implements HolidayGenerationWay {
@Override
public boolean support(int personClassfiy) {
if (personClassfiy == 0) {
return true;
}
return false;
}
@Override
public void compute(Map<String, Object> data) {
String userId = Util.null2String(data.get("userId"));
String releaseDate = Util.null2String(data.get("releaseDate"));
String cover = Util.null2String(data.get("cover"));
if ("".equals(releaseDate)) {
releaseDate = DateUtil.getCurrentTime();
}
List<Map<String, Object>> vocationList = (List<Map<String, Object>>) data.get("vocationList");
//起算日期
String qsrq = Util.null2String(vocationList.get(0).get("qsrq"));
//额度有效期间
String edyxqsz = Util.null2String(vocationList.get(0).get("edyxqsz"));
//额度有效期间单位
String edyxq = Util.null2String(vocationList.get(0).get("edyxq"));
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
//调整起算日期策略
String dzqsrq = Util.null2String(vocationList.get(0).get("dzqsrq"));
//分割日期
String fgrq = Util.null2String(vocationList.get(0).get("fgrq"));
//提前执行发放操作的天数
String dqtqffts = Util.null2String(vocationList.get(0).get("dqtqffts"));
//执行发放的时间点
String ffdtffsj = Util.null2String(vocationList.get(0).get("ffdtffsj"));
//入职当期额度按比例折算
String rzdqedablzs = Util.null2String(vocationList.get(0).get("rzdqedablzs"));
//首次获得额度按比例折算
String schdedablzs = Util.null2String(vocationList.get(0).get("schdedablzs"));
//额度变更时额度处理方式
String edbgsedclfs = Util.null2String(vocationList.get(0).get("edbgsedclfs"));
//额度单位
String eddw = Util.null2String(vocationList.get(0).get("edbgsedclfs"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
//首次获得额度控制生效日期
String schdedkzsxrq = Util.null2String(vocationList.get(0).get("schdedkzsxrq"));
qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq, dzqsrq, fgrq);
for (Map<String, Object> vocationMap : vocationList) {
vocationMap.put("qsrq", qsrq);
}
//相差天数
int betweenDays = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]);
//相差月份
int betweenMonth = DateUtil.getBetWeenMonths(qsrq, releaseDate.split(" ")[0]);
//总工龄天数
int allWorkDays = Double.valueOf(ljcrglyfslwz).intValue() * 30 + betweenDays;
//总月数
int allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue();
if (allMonths < 12 && !CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) {
log.info("userId : [{}] 工龄小于1年", userId);
return;
}
Map<String, Object> insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate);
List<Map<String,Object>> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam);
//已存在数据且不覆盖
if (dataList.size()>0 && !"1".equals(cover)) {
return;
}
String sxrq = insertHoliDayParam.get("sxrq").toString();
//实际休息时长
double restTime = 0;
//工龄小于1年的新员工,且额度有效期单位为自然年
if (allMonths < 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
// Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, 0, yjzd);
//
// //额定休息时长
// double edktsc = Double.valueOf(vocationMap.get("edktsc") == null? "0" :Util.null2String(vocationMap.get("edktsc")));
if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs) || CheckBoxEnum.CHECKED.getKey().equals(schdedablzs)) {
// if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年和发生日期在同一年,生成假期在下一年
// int days = DateUtil.getBetWeenDays(qsrq, qsrq.split("-")[0] + "-12-31") + 1;
// int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR);
// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl);
// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年和发生日期在同一年,生成假期为起算年的当年
// int days = Double.valueOf(ljcrglyfslwz).intValue() * 30;
// int yearDays = DateUtil.getDays(DateUtil.beforeYear(releaseDate,1,DateUtil.yyyyMMdd), Calendar.DAY_OF_YEAR);
// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl);
// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年在发生日期的上一年,起算年的后一年
// int days = DateUtil.getBetWeenDays(qsrq, qsrq.split("-")[0] + "-12-31") + 1;
// int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR);
// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl);
// } else if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年在发生日期的上一年,生成假期为起算年的后第二年
// restTime = edktsc;
// }
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT);
} else {
// restTime = edktsc;
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT);
}
if (CheckBoxEnum.CHECKED.getKey().equals(schdedkzsxrq)) {
insertHoliDayParam.put("sxrq", DateUtil.nextYear(releaseDate.split(" ")[0], 1, DateUtil.yyyyMMdd));
}
insertHoliDayParam.put("ktsc", restTime);
} else if (allMonths >= 12 && edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())) {
//入职不满一年,且入职当期额度按比例折算
if (CheckBoxEnum.CHECKED.getKey().equals(rzdqedablzs) && betweenMonth < 12
&& sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
//起算年和发生日期在同一年,生成假期为起算年的当年
// Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, Double.valueOf(ljcrglyfslwz).intValue() / 12, yjzd);
// double edktsc = Double.valueOf(vocationMap.get("edktsc").toString());
// int days = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]) + 1;
// int yearDays = DateUtil.getDays(qsrq, Calendar.DAY_OF_YEAR);
// restTime = VocationCommonUtil.computeRestDays(days, yearDays, edktsc, wscl);
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT);
} else {
//
// if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年和发生日期在同一年,生成假期在下一年
// //betweenMonth = DateUtil.getBetWeenMonths(qsrq,qsrq.split("-")[0] + "-12-31");
// betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
//
// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年和发生日期在同一年,生成假期为发生日期的当年
// betweenMonth=0;
//
// } else if (sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年在发生日期的之前,生成假期为发生日期的当年
// //betweenMonth = DateUtil.getBetWeenMonths(qsrq,DateUtil.beforeYear(releaseDate,1,DateUtil.yyyy) + "-12-31");
// betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
//
// } else if (!sxrq.split("-")[0].equals(releaseDate.split("-")[0]) && !releaseDate.split("-")[0].equals(qsrq.split("-")[0])) {
// //起算年在发生日期的之前,生成假期为发生日期的下一年
// //betweenMonth = DateUtil.getBetWeenMonths(qsrq,releaseDate.split("-")[0] + "-12-31");
// betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
//
// }
// allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue();
// int intervalYear = allMonths/12;
// Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear / 12, yjzd);
// double edktsc = Double.valueOf(vocationMap.get("edktsc").toString());
if (QuotaChangeMethodEnum.CONVERT.getKey().equals(edbgsedclfs)) {
// Map<String, Object> beforeVocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear - 1, yjzd);
// if (!beforeVocationMap.get("detailid").equals(vocationMap.get("detailid"))) {
// //考虑残年情况
// double beforeEdktsc = Double.valueOf(beforeVocationMap.get("edktsc").toString());
// int needBackMonths = (intervalYear - 1) * 12 - Double.valueOf(ljcrglyfslwz).intValue();
//
// String middleTime = releaseDate.split("-")[0] + "-" + DateUtil.nextMonth(qsrq, needBackMonths, DateUtil.yyyyMMdd).split("-")[1] + "-" + qsrq.split("-")[2];
// int beforeDays = DateUtil.getBetWeenDays(releaseDate.split("-")[0] + "-01-01", middleTime);
// int afterDays = DateUtil.getBetWeenDays(middleTime, releaseDate.split("-")[0] + "-12-31");
//
// int yearDays = DateUtil.getDays(releaseDate, Calendar.DAY_OF_YEAR);
// restTime = VocationCommonUtil.computeRestDays(beforeDays, yearDays, beforeEdktsc, wscl) + VocationCommonUtil.computeRestDays(afterDays, yearDays, edktsc, wscl);
// } else {
// restTime = edktsc;
// }
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.CONVERT);
} else if (QuotaChangeMethodEnum.NO_CONVERT.getKey().equals(edbgsedclfs)) {
// restTime = edktsc;
restTime = getRestTime(insertHoliDayParam,vocationList,QuotaChangeMethodEnum.NO_CONVERT);
}
}
} else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())) {
int betweenYear = DateUtil.getBetWeenYears(qsrq,releaseDate.split(" ")[0]);
//起算年
allMonths = Double.valueOf(ljcrglyfslwz).intValue();
int intervalYear = allMonths / 12+betweenYear;
Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, intervalYear, yjzd);
restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0;
} else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){
//自然月
betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
if (DateUtil.getTime(sxrq).compareTo(DateUtil.getTime(qsrq)) <=0){
betweenMonth = 0;
}
allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue();
Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd);
restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0;
} else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){
//起算月
betweenMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
allMonths = betweenMonth+Double.valueOf(ljcrglyfslwz).intValue();
Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, allMonths, yjzd);
restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0;
} else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){
//起自然周
betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1;
if (DateUtil.getTime(sxrq).compareTo(DateUtil.getTime(qsrq)) <=0){
betweenDays = 0;
}
allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays;
Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd);
restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0;
} else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){
//起算周
betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1;
if (betweenDays <=7){
betweenDays=0;
}
allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays;
Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays/7, yjzd);
restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0;
} else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){
//自然天
betweenDays = DateUtil.getBetWeenDays(qsrq,sxrq)+1;
allWorkDays = Double.valueOf(ljcrglyfslwz).intValue()*30+betweenDays;
Map<String, Object> vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd);
restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0;
}
insertHoliDayParam.put("ktsc", restTime);
VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList);
}
public double getRestTime(Map<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 nextSxrq = DateUtil.nextYear(sxrq,1,DateUtil.yyyyMMdd);
//累计承认工龄月份数栏位值
String ljcrglyfslwz = Util.null2String(vocationList.get(0).get("ljcrglyfslwz"));
//依据字段
String yjzd = Util.null2String(vocationList.get(0).get("yjzd"));
//尾数处理
String wscl = Util.null2String(vocationList.get(0).get("wscl"));
int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue();
double restTime=0.0;
//折算
if (changeMethodEnum == QuotaChangeMethodEnum.CONVERT){
int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
if (beginYearMonth < 0){
beginYearMonth = 0;
}
beginYearMonth = beginYearMonth+seniority;
int endYearMonth = DateUtil.getBetWeenMonths(qsrq,nextSxrq);
endYearMonth = endYearMonth+seniority;
int beginYear = beginYearMonth/12;
int endYear = endYearMonth/12;
int endYearRemainder = endYearMonth%12;
Map<String,Object> beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd);
Map<String,Object> endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd);
double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc")));
double endEdktsc = Double.valueOf(endYearmap.get("edktsc") == null? "0" :Util.null2String(endYearmap.get("edktsc")));
//残年分割日期
String divideTime = DateUtil.beforeMonth(nextSxrq,endYearRemainder);
divideTime = divideTime.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+qsrq.split("-")[2];
int yearDays = DateUtil.getDays(sxrq, Calendar.DAY_OF_YEAR);
if (beginEdktsc == endEdktsc){
//当前后额定可休时长一样时,代表没有残年情况
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
int days = DateUtil.getBetWeenDays(qsrq,nextSxrq);
restTime = VocationCommonUtil.computeRestDays(days, yearDays, endEdktsc, wscl);
}else {
restTime = beginEdktsc;
}
}else {
//考虑残年
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(sxrq)) >=0){
if (DateUtil.getTime(divideTime).compareTo(DateUtil.getTime(qsrq)) >=0){
int beforeDays = DateUtil.getBetWeenDays(qsrq,divideTime);
int afterDays = DateUtil.getBetWeenDays(divideTime,nextSxrq);
double beforeRestTime = VocationCommonUtil.computeRestDays(beforeDays, yearDays, endEdktsc, wscl);
double afterRestTime = VocationCommonUtil.computeRestDays(afterDays, yearDays, endEdktsc, wscl);
restTime = beforeRestTime+afterRestTime;
}else {
int afterDays = DateUtil.getBetWeenDays(qsrq,nextSxrq);
restTime = VocationCommonUtil.computeRestDays(afterDays, yearDays, endEdktsc, wscl);
}
}else {
int beforeDays = DateUtil.getBetWeenDays(sxrq,divideTime);
int afterDays = DateUtil.getBetWeenDays(divideTime,nextSxrq);
double beforeRestTime = VocationCommonUtil.computeRestDays(beforeDays, yearDays, endEdktsc, wscl);
double afterRestTime = VocationCommonUtil.computeRestDays(afterDays, yearDays, endEdktsc, wscl);
restTime = beforeRestTime+afterRestTime;
}
}
}else {
//不折算
int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq);
if (beginYearMonth < 0){
beginYearMonth = 0;
}
beginYearMonth = beginYearMonth+seniority;
int beginYear = beginYearMonth/12;
Map<String,Object> beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd);
double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc")));
restTime=beginEdktsc;
}
return restTime;
}
}

@ -0,0 +1,11 @@
package com.engine.attendance.vacation.service;
import weaver.hrm.User;
import java.util.Map;
public interface VocationService {
Map<String,Object> generateVocation(Map<String,Object> params);
}

@ -0,0 +1,94 @@
package com.engine.attendance.vacation.service.impl;
import com.engine.attendance.attendanceplan.service.AttendancePlanService;
import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl;
import com.engine.attendance.vacation.cmd.VocationCmd;
import com.engine.attendance.vacation.service.VocationService;
import com.engine.common.cmd.GetPersonDateBySuitOrganzation;
import com.engine.common.util.DbTools;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
public class VocationServiceImpl extends Service implements VocationService {
private AttendancePlanService basicsetService = ServiceUtil.getService(AttendancePlanServiceImpl.class);
@Override
public Map<String, Object> generateVocation(Map<String, Object> params) {
String modeId = Util.null2String(params.get("modeId"));
Map<String,Object> param = Maps.newHashMap();
param.put("modeId",modeId);
Map<String,Object> result = commandExecutor.execute(new GetPersonDateBySuitOrganzation(param));
String sql = "select a.id userid,a.*,b.* from hrmresource a left join cus_fielddata b on a.id=b.id where a.id in (";
List<String> userIds = Lists.newArrayList();
for (Map.Entry<String, Object> entry : result.entrySet()){
userIds.add(entry.getKey());
}
List<List<String>> userPartions = Lists.partition(userIds,50);
List<Map<String,Object>> dataList = Lists.newArrayList();
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>> filterList = resultList.stream().filter(e -> "HrmCustomFieldByInfoType".equals(Util.null2String(e.get("scope"))) &&
"-1".equals(Util.null2String(e.get("scopeid")))).collect(Collectors.toList());
dataList.addAll(filterList);
List<String> filterStrList = filterList.stream().map(e -> e.get("userid").toString()).collect(Collectors.toList());
resultList = resultList.stream().filter(e -> {
String userId = Util.null2String(e.get("userid"));
if (filterStrList.contains(userId)){
return false;
}else {
return true;
}
}).collect(Collectors.toList());
dataList.addAll(resultList);
}
Map<String,List<Map<String,Object>>> userIdMap = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
for (Map.Entry<String, Object> entry : result.entrySet()){
String userId = entry.getKey();
Map<String,String> vocationMap = (Map<String, String>)entry.getValue();
Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("startDate","");
paramMap.put("endDate","");
paramMap.put("resourceId",userId);
Map<String,Object> dataMap = basicsetService.getAttendanceItemsByPerson(paramMap);
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)dataMap.get("data");
Map<String, Object> needGenerateVocationMap = Maps.newHashMap();
for (Map<String,Object> map : attendanceItems){
if (vocationMap.get(map.get("key")) != null){
needGenerateVocationMap.put(Util.null2String(map.get("key")),vocationMap.get(map.get("key")));
}
}
log.info("VocationServiceImpl userId:{}, userMap:{}",userId,userIdMap.get(userId));
for (Map.Entry<String, Object> e:needGenerateVocationMap.entrySet()){
if (e.getValue() != null && ((List<Map<String,Object>>)e.getValue()).size() > 0){
Map<String,Object> vocationParam = Maps.newHashMap();
vocationParam.put("userId",userId);
vocationParam.put("vocationList",e.getValue());
vocationParam.put("userMap",userIdMap.get(userId).get(0));
vocationParam.put("releaseDate",params.get("releaseDate"));
commandExecutor.execute(new VocationCmd(vocationParam));
}
}
}
return null;
}
}

@ -1,9 +0,0 @@
package com.engine.attendance.vacation.service;
import weaver.hrm.User;
import java.util.Map;
public interface vocationService {
Map<String,Object> getHrmCondition(Map<String,Object> params, User user);
}

@ -0,0 +1,425 @@
package com.engine.attendance.vacation.util;
import com.engine.attendance.enums.*;
import com.engine.common.util.CommonUtil;
import com.engine.common.util.DateUtil;
import com.engine.common.util.DbTools;
import com.engine.common.util.Utils;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.exolab.castor.xml.schema.IdentityField;
import weaver.general.TimeUtil;
import weaver.general.Util;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
public class VocationCommonUtil {
/**
*
* @param qsrq
* @param dzqsrq
* @param fgrq
* @return
*/
public static String getAfterAdjustTime(String qsrq,String dzqsrq,String fgrq){
if (AdjustStartingTimeEnum.NEXT_MONTH.getKey().equals(dzqsrq)){
String nextMonth = DateUtil.nextMonth(qsrq,1,DateUtil.yyyyMMdd);
qsrq = nextMonth.split("-")[0]+"-"+nextMonth.split("-")[1]+"-01";
}else if (AdjustStartingTimeEnum.BY_SEGMENT_TIME.getKey().equals(dzqsrq)){
if (fgrq.length() == 1){
fgrq = "0"+fgrq;
}
String divideDate=qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+fgrq;
if (DateUtil.getTime(qsrq).compareTo(DateUtil.getTime(divideDate)) >=0){
qsrq=divideDate;
}
}else if (AdjustStartingTimeEnum.NOW_MONTH.getKey().equals(dzqsrq)){
qsrq = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01";
}
log.info("getAfterAdjustTime qsrq : [{}]",qsrq);
return qsrq;
}
/**
*
* @param releaseDate
* @param vocationMap
* @return
public static String getExcuteTime(String releaseDate ,Map<String,Object> vocationMap){
String time = "";
String edyxq = Util.null2String(vocationMap.get("edyxq"));
String dqtqffts = Util.null2String(vocationMap.get("dqtqffts"));
String ffdtffsj = Util.null2String(vocationMap.get("ffdtffsj"));
String qsrq = Util.null2String(vocationMap.get("qsrq"));
int edyxqsz = Double.valueOf(Util.null2String(vocationMap.get("edyxqsz"))).intValue();
if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())){
int nowYear = Integer.valueOf(releaseDate.split("-")[0])+1;
int StartYear = Integer.valueOf(qsrq.split("-")[0]);
if ((nowYear-StartYear)%edyxqsz == 0){
String endYearTime = releaseDate.split("-")[0]+"-"+"12-31";
time = DateUtil.beforeDay(endYearTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){
int betweenYear = DateUtil.getBetWeenYears(releaseDate.split(" ")[0],qsrq);
if (betweenYear >=1 && betweenYear % edyxqsz == 0){
if (betweenYear > 1){
String startTime = releaseDate.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+qsrq.split("-")[2];
time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}else {
String startTime = DateUtil.nextYear(qsrq,1,DateUtil.yyyyMMdd);
time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){
String startTime = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01";
String nowTime = releaseDate.split("-")[0]+"-"+releaseDate.split("-")[1]+"-01";
int betweenMonths = DateUtil.getBetWeenMonths(startTime,nowTime)+1;
if (betweenMonths % edyxqsz == 0){
int diffdays = DateUtil.getDays(releaseDate, Calendar.DAY_OF_MONTH);
String endMonthTime = releaseDate.split("-")[0]+"-"+releaseDate.split("-")[1]+"-"+diffdays;
time = DateUtil.beforeDay(endMonthTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){
String afterReleaseDate = DateUtil.AfterDay(releaseDate.split(" ")[0],Integer.valueOf(dqtqffts));
int betweenMonths = DateUtil.getBetWeenMonths(qsrq,afterReleaseDate);
if (betweenMonths >=1 && betweenMonths%edyxqsz == 0 && qsrq.split("-")[2].equals(afterReleaseDate.split("-")[2])){
if (betweenMonths > 1){
String startTime = releaseDate.split(" ")[0];
time = startTime +" "+ffdtffsj;
}else {
String startTime = DateUtil.nextMonth(qsrq,1,DateUtil.yyyyMMdd);
time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){
int days = DateUtil.getBetWeenDays(qsrq,releaseDate.split(" ")[0]);
int dayOfWeek = TimeUtil.getDayOfWeek(qsrq);
if (dayOfWeek == 0){
dayOfWeek = 7;
}
days = days-(7-dayOfWeek);
int betWeenWeeks = days/7 +1;
if (days % 7 == 0 && betWeenWeeks%edyxqsz == 0){
String startTime = DateUtil.AfterDay(releaseDate.split(" ")[0],7);
time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){
String afterReleaseDate = DateUtil.AfterDay(releaseDate.split(" ")[0],Integer.valueOf(dqtqffts));
int days = DateUtil.getBetWeenDays(qsrq,afterReleaseDate);
int betWeenWeeks = days/7;
if (days %7 ==0 && betWeenWeeks%edyxqsz == 0 && betWeenWeeks>=1){
if (betWeenWeeks > 1){
String startTime = releaseDate.split(" ")[0];
time = startTime +" "+ffdtffsj;
}else {
String startTime = DateUtil.AfterDay(qsrq,7);
time = DateUtil.beforeDay(startTime,Integer.valueOf(dqtqffts)) +" "+ffdtffsj;
}
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){
time = releaseDate.split(" ")[0]+" "+ffdtffsj;
}
log.info("excuteTime : [{}]",time);
return time;
}
*/
/**
*
* @param vocationList
* @param intervalDuration
* @param yjzd
* @return
*/
public static Map<String,Object> getVocationMap(List<Map<String,Object>> vocationList,int intervalDuration,String yjzd){
List<Map<String,Object>> resultList = vocationList.stream().filter(e -> {
//间隔时长起
double jgsc0 = Double.valueOf(Util.null2String(e.get("jgsc0")));
//间隔时长止
double jgsc1 = Double.valueOf(Util.null2String(e.get("jgsc1")));
//选项值
String xxz = Util.null2String(e.get("xxz"));
if (!"".equals(yjzd) && xxz.equals(yjzd) && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){
return true;
}else if ("".equals(yjzd) && intervalDuration >=jgsc0 && intervalDuration<=jgsc1){
return true;
}else {
return false;
}
}).collect(Collectors.toList());
if (resultList.size() > 0){
return resultList.get(0);
}else {
return new HashMap<>();
}
}
/**
*
* @param day
* @param yearDay
* @param ratedRestTime
* @param wscl
* @return
*/
public static double computeRestDays(int day,int yearDay,double ratedRestTime,String wscl){
BigDecimal dayBig = new BigDecimal(day);
BigDecimal yearDayBig = new BigDecimal(yearDay);
BigDecimal ratedRestTimeBig = new BigDecimal(ratedRestTime);
double result = 0;
if (RemainderHandleEnum.ROUND_UP_FOUR.getKey().equals(wscl)){
result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue();
}else if (RemainderHandleEnum.ROUND_UP_TWO.getKey().equals(wscl)){
result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
}else if (RemainderHandleEnum.DOWN_ZERO_POINT_FIVE.getKey().equals(wscl)){
result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue();
result = Math.floor(result * 2) / 2;
}else if (RemainderHandleEnum.UP_ZERO_POINT_FIVE.getKey().equals(wscl)){
result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue();
result = Math.ceil(result * 2) / 2;
}else if (RemainderHandleEnum.ROUND_DOWN.getKey().equals(wscl)){
result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(0,BigDecimal.ROUND_DOWN).doubleValue();
}else if (RemainderHandleEnum.ROUND_UP.getKey().equals(wscl)){
result = dayBig.divide(yearDayBig,6,BigDecimal.ROUND_HALF_UP).multiply(ratedRestTimeBig).setScale(0,BigDecimal.ROUND_UP).doubleValue();
}
return result;
}
/**
*
* @param vocationMap
* @param userId id
* @param qsrq
* @param ffsj
* @return
*/
public static Map<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"));
//额度有效期间
int edyxqsz = Double.valueOf(Util.null2String(vocationMap.get("edyxqsz"))).intValue();
//提前执行发放操作的天数
int dqtqffts = Integer.valueOf(Util.null2String(vocationMap.get("dqtqffts")));
//结余未休处理
String jywxcl = Util.null2String(vocationMap.get("jywxcl"));
//延期时长
String yqsc = Util.null2String(vocationMap.get("yqsc"));
//执行发放的时间点
String ffdtffsj = Util.null2String(vocationMap.get("ffdtffsj"));
param.put("lyid",vocationMap.get("dataid"));
param.put("jqid",vocationMap.get("jb"));
param.put("ygid",userId);
param.put("qsrq",qsrq);
param.put("ffsj",ffsj);
if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey())){
String nowEndYearTime = ffsj.split("-")[0]+"-12-31";
String forWardTime = DateUtil.beforeDay(nowEndYearTime,dqtqffts) +" "+ffdtffsj;
if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){
//发放下一年
String nextYear = DateUtil.nextYear(ffsj,1,DateUtil.yyyyMMdd);
String jzrq = DateUtil.nextYear(nextYear,edyxqsz-1,DateUtil.yyyyMMdd);
param.put("sxrq",nextYear.split("-")[0]+"-01-01");
param.put("jzrq",jzrq.split("-")[0]+"-12-31");
}else {
//发放当年
param.put("sxrq",ffsj.split("-")[0]+"-01-01");
param.put("jzrq",DateUtil.nextYear(ffsj.split("-")[0]+"-12-31",edyxqsz-1,DateUtil.yyyyMMdd));
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){
String startTime = ffsj.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+qsrq.split("-")[2];
String beforeStartTime = DateUtil.beforeYear(startTime,1,DateUtil.yyyyMMdd);
String beforeEndTime = DateUtil.beforeDay(startTime,1);
String endTime = DateUtil.nextYear(beforeEndTime,1,DateUtil.yyyyMMdd);
String forWardTime = DateUtil.beforeDay(beforeEndTime,dqtqffts) +" "+ffdtffsj;
if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){
//发放下一周期
param.put("sxrq",startTime);
param.put("jzrq",DateUtil.nextYear(endTime,edyxqsz-1,DateUtil.yyyyMMdd));
}else {
//发放当前周期
param.put("sxrq",beforeStartTime);
param.put("jzrq",DateUtil.nextYear(beforeEndTime,edyxqsz-1,DateUtil.yyyyMMdd));
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey())){
String sxrq = DateUtil.nextMonth(ffsj,1,DateUtil.yyyyMM)+"-01";
int days = DateUtil.getDays(sxrq,Calendar.DAY_OF_MONTH);
String jzrq = DateUtil.nextMonth(sxrq,edyxqsz-1,DateUtil.yyyyMM) +"-"+days;
String beforeSxrq = ffsj.split("-")[0]+"-"+ffsj.split("-")[1]+"-01";
int beforeDays = DateUtil.getDays(beforeSxrq,Calendar.DAY_OF_MONTH);
String beforeJzrq = DateUtil.nextMonth(beforeSxrq,edyxqsz-1,DateUtil.yyyyMM);
int beforeJzrqDays = DateUtil.getDays(beforeJzrq,Calendar.DAY_OF_MONTH);
beforeJzrq = beforeJzrq +"-"+beforeJzrqDays;
String forWardTime = DateUtil.beforeDay(ffsj.split("-")[0]+"-"+ffsj.split("-")[1]+"-"+beforeDays,dqtqffts)+" "+ffdtffsj;
if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){
//发放下一月份
param.put("sxrq",sxrq);
param.put("jzrq",jzrq);
}else {
//发放当前月份
param.put("sxrq",beforeSxrq);
param.put("jzrq",beforeJzrq);
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){
String sxrq = ffsj.split("-")[0]+"-"+ffsj.split("-")[1]+"-"+qsrq.split("-")[2];
String beforeEndTime = DateUtil.beforeDay(sxrq,1);
String beforeSxrq = DateUtil.beforeMonth(sxrq,1);
String beforeJzrq = DateUtil.nextMonth(beforeEndTime,edyxqsz-1,DateUtil.yyyyMM);
String jzrq = DateUtil.nextMonth(beforeEndTime,edyxqsz,DateUtil.yyyyMM);
String forWardTime = DateUtil.beforeDay(beforeEndTime,dqtqffts)+" "+ffdtffsj;
if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){
//发放下一月份
param.put("sxrq",sxrq);
param.put("jzrq",jzrq);
}else {
//发放当前月份
param.put("sxrq",beforeSxrq);
param.put("jzrq",beforeJzrq);
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey())){
int dayOfWeek = TimeUtil.getDayOfWeek(ffsj);
if (dayOfWeek == 0){
dayOfWeek = 7;
}
String time = ffsj.split("-")[0]+"-"+ffsj.split("-")[1] +"-"+ffsj.split(" ")[0].split("-")[2];
String sxrq = DateUtil.AfterDay(time,8-dayOfWeek);
String beforeSxrq = DateUtil.beforeMonth(time,dayOfWeek-1);
String beforeJxrq = DateUtil.AfterDay(time,8-dayOfWeek);
String forWardTime = DateUtil.beforeDay(beforeJxrq,dqtqffts)+" "+ffdtffsj;
if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){
//发放下一周
param.put("sxrq",sxrq);
param.put("jzrq",DateUtil.AfterDay(sxrq,7*edyxqsz-1));
}else {
//发放当前周
param.put("sxrq",beforeSxrq);
param.put("jzrq",DateUtil.AfterDay(beforeSxrq,7*edyxqsz-1));
}
}else if (edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){
String time = ffsj.split("-")[0]+"-"+ffsj.split("-")[1] +"-"+ffsj.split(" ")[0].split("-")[2];
int days = DateUtil.getBetWeenDays(qsrq,time);
int residueDays = days%7;
String beforeSxrq = DateUtil.beforeDay(time,residueDays);
String beforeEndTime = DateUtil.AfterDay(beforeSxrq,6);
String sxrq = DateUtil.AfterDay(beforeSxrq,7);
String forWardTime = DateUtil.beforeDay(beforeEndTime,dqtqffts)+" "+ffdtffsj;
if (DateUtil.getTime(ffsj).compareTo(DateUtil.getTime(forWardTime)) >=0){
//发放下一周周期
param.put("sxrq",sxrq);
param.put("jzrq",DateUtil.AfterDay(sxrq,7*edyxqsz-1));
}else {
//发放当前周期
param.put("sxrq",beforeSxrq);
param.put("jzrq",DateUtil.AfterDay(beforeSxrq,7*edyxqsz-1));
}
}else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){
String sxrq = DateUtil.AfterDay(ffsj.split(" ")[0],1);
param.put("sxrq",sxrq);
param.put("jzrq",sxrq);
}
if (BalanceHandleEnum.DELAY.getKey().equals(jywxcl)){
if (DelayTypeEnum.ONE_MONTH.getKey().equals(yqsc)){
//一个月
param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),1,DateUtil.yyyyMMdd));
}else if (DelayTypeEnum.TWO_MONTH.getKey().equals(yqsc)){
//两个月
param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),2,DateUtil.yyyyMMdd));
}else if (DelayTypeEnum.THREE_MONTH.getKey().equals(yqsc)){
//三个月
param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),3,DateUtil.yyyyMMdd));
}else if (DelayTypeEnum.HALF_YEAR.getKey().equals(yqsc)){
//半年
param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),6,DateUtil.yyyyMMdd));
}else if (DelayTypeEnum.ONE_YEAR.getKey().equals(yqsc)){
//一年
param.put("yqsxrq",DateUtil.nextMonth(param.get("jzrq").toString(),12,DateUtil.yyyyMMdd));
}
}
return param;
}
/**
*
* @param tableName
* @param dataMap
*/
public static void updateHolidayBalance(String tableName,Map<String,Object> dataMap,List<Map<String,Object>> dataList){
log.info("updateHolidayBalance dataMap:[{}]",dataMap);
String lyid = Util.null2String(dataMap.get("lyid"));
String ygid = Util.null2String(dataMap.get("ygid"));
String jqid = Util.null2String(dataMap.get("jqid"));
String sxrq = Util.null2String(dataMap.get("sxrq"));
String jzrq = Util.null2String(dataMap.get("jzrq"));
if (dataList.size()>0){
Map<String,Object> condition = Maps.newHashMap();
condition.put("id",dataList.get(0).get("id"));
DbTools.update(CommonUtil.makeUpdateSql(tableName,dataMap,condition));
}else {
Utils.InsertFormTable(tableName, dataMap, Utils.getFormmodeIdMap());
}
}
/**
*
* @param tableName
* @param dataMap
* @return
*/
public static List<Map<String,Object>> ifexist(String tableName,Map<String,Object> dataMap){
log.info("updateHolidayBalance dataMap:[{}]",dataMap);
String lyid = Util.null2String(dataMap.get("lyid"));
String ygid = Util.null2String(dataMap.get("ygid"));
String jqid = Util.null2String(dataMap.get("jqid"));
String sxrq = Util.null2String(dataMap.get("sxrq"));
String jzrq = Util.null2String(dataMap.get("jzrq"));
String sql = "select id from "+tableName +" where lyid=? and ygid=? and jqid=? and sxrq=? and jzrq=?";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,lyid,ygid,jqid,sxrq,jzrq);
return dataList;
}
}

@ -0,0 +1,54 @@
package com.engine.attendance.vacation.web;
import com.engine.attendance.vacation.service.VocationService;
import com.engine.attendance.vacation.service.impl.VocationServiceImpl;
import com.engine.common.util.ApiReturnTools;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.common.util.Utils;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import java.util.Map;
@Slf4j
public class VocationAction {
private VocationService vocationService = ServiceUtil.getService(VocationServiceImpl.class);
/**
* tableName
* columns
* conditions
* orderby limit
* @return
*/
@GET
@Path("/generateVocation")
@Produces({"text/plain"})
public String generateVocation(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
Map<String,Object> paramMap = ParamUtil.request2Map(request);
Map<String,String> formmodeIdMap = Utils.getFormmodeIdMap();
//假期额度模块id
String modeId = formmodeIdMap.get("uf_jcl_kq_jqed");
paramMap.put("modeId",modeId);
Map<String,Object> dataMap = vocationService.generateVocation(paramMap);
return ApiReturnTools.success(dataMap);
}catch (Exception e){
log.error("sync fund status fail,catch error: [{}]",e);
return ApiReturnTools.error("200","查询失败");
}
}
}

@ -5,13 +5,10 @@ import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.common.util.DbTools;
import com.engine.core.interceptor.CommandContext;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -35,10 +32,10 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
@Override
public Map<String, Object> execute(CommandContext commandContext) {
String modeId = Util.null2String(params.get("modeId"));
String sql = "select dxlx,aqjb,dataid,dx from uf_syzz where modeid=?";
String sql = "select dxlx,aqjb,dataid,dx from uf_jcl_syzz where modeid=?";
//假期额度适用组织所有值集合
List<Map<String,Object>> organzationList = DbTools.getSqlToList(sql,modeId);
sql = "select a.id dataid,a.*,b.* from uf_jcl_kq_jqed a left join uf_jcl_kq_jqed_dt1 b on a.id=b.mainid";
sql = "select a.id dataid,b.id detailid,a.*,b.* from uf_jcl_kq_jqed a left join uf_jcl_kq_jqed_dt1 b on a.id=b.mainid";
//所有假期额度生成规则值
List<Map<String,Object>> vacationList = DbTools.getSqlToList(sql);
//人力资源id假别规则id
@ -50,8 +47,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
//分部id假别规则id
Map<String,Object> subCompanyMap = Maps.newHashMap();
//以假期额度生成规则id分割的适用组织所有值集合
Map<String,List<Map<String,Object>>> organzationCollect = organzationList.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("dataid"))));
//规则id-对象id安全级别
Map<String,String> organzationByMap = Maps.newHashMap();
for (Map<String,Object> map : organzationList){
@ -71,7 +67,14 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
//以假期额度生成规则id分割的假期额度生成规则值集合
Map<String,String> vacationMap = vacationList.stream().collect(Collectors.toMap(e->e.get("dataid").toString(),e->e.get("jb").toString()));
Map<String,String> vacationMap = Maps.newHashMap();
for (Map<String,Object> vocation:vacationList){
vacationMap.put(vocation.get("dataid").toString(),vocation.get("jb").toString());
}
Map<String,List<Map<String,Object>>> vacationGroupByDataIdMap = vacationList.stream().collect(Collectors.groupingBy(e->e.get("dataid").toString()));
Set<String> personOrganzationIds = Sets.newHashSet();
Set<String> departMentIds = Sets.newHashSet();
@ -128,36 +131,43 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
List<Map<String,Object>> hrmListByDepartAndSubCompanyIds = DbTools.getSqlToList(sql);
//分部id-人员id集合
Map<String,List<Map<String,Object>>> hrmListGroupByDepart = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("departmentid"))));
//部门id-人员id集合
Map<String,List<Map<String,Object>>> hrmListGroupByDepart = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("departmentid"))));
log.info("hrmListGroupByDepart : [{}]",hrmListGroupByDepart);
//分部id-人员id集合
Map<String,List<Map<String,Object>>> hrmListGroupBySubCompany = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("subcompanyid1"))));
log.info("hrmListGroupBySubCompany : [{}]",hrmListGroupBySubCompany);
//人员分组id-人员id集合
Map<String,Set<String>> personGroupUserIds = getPersonGroupUserIds(personOrganzationIds);
//人员分组id-假别假期规则id
for (Map.Entry<String,Object> entry : personOrganzationMap.entrySet()){
String personGroupId = entry.getKey();
//人员分组假别假期规则id
Map<String,String> personGroupHolidayMap = (Map<String,String>)entry.getValue();
Set<String> userIds = personGroupUserIds.get(personGroupId);
for (String userId :userIds){
//人力资源原本已有的假期假别规则id
Map<String,String> psersonSet = personMap.get(userId) == null?null:(Map<String,String>)personMap.get(userId);
if (psersonSet == null) {
personMap.put(userId,personGroupHolidayMap);
}else {
Map<String,String> newMap = Maps.newHashMap();
for (Map.Entry<String,String> personGroupHolidayEntry :personGroupHolidayMap.entrySet()){
if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){
newMap.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue());
if (personOrganzationIds.size() >0){
//人员分组id-假别假期规则id
Map<String,Set<String>> personGroupUserIds = getPersonGroupUserIds(personOrganzationIds);
log.info("personGroupUserIds : [{}]",personGroupUserIds);
log.info("personOrganzationMap : [{}]",personOrganzationMap);
for (Map.Entry<String,Object> entry : personOrganzationMap.entrySet()){
String personGroupId = entry.getKey();
//人员分组假别假期规则id
Map<String,String> personGroupHolidayMap = (Map<String,String>)entry.getValue();
Set<String> userIds = personGroupUserIds.get(personGroupId);
for (String userId :userIds){
//人力资源原本已有的假期假别规则id
Map<String,String> psersonSet = personMap.get(userId) == null?null:(Map<String,String>)personMap.get(userId);
if (psersonSet == null) {
personMap.put(userId,personGroupHolidayMap);
}else {
for (Map.Entry<String,String> personGroupHolidayEntry :personGroupHolidayMap.entrySet()){
if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){
psersonSet.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue());
}
}
personMap.put(userId,psersonSet);
}
personMap.put(userId,newMap);
}
}
}
log.info("before personMap : [{}]",personMap);
//部门id
log.info("departMentMap : [{}]",departMentMap);
for (Map.Entry<String,Object> entry : departMentMap.entrySet()){
String departMentId = entry.getKey();
//部门假别假期规则id
@ -170,17 +180,17 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
if (psersonSet == null) {
personMap.put(userId,departMentHolidayMap);
}else {
Map<String,String> newMap = Maps.newHashMap();
for (Map.Entry<String,String> personGroupHolidayEntry :departMentHolidayMap.entrySet()){
if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){
newMap.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue());
psersonSet.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue());
}
}
personMap.put(userId,newMap);
personMap.put(userId,psersonSet);
}
}
}
//分部id
log.info("subCompanyMap : [{}]",subCompanyMap);
for (Map.Entry<String,Object> entry : subCompanyMap.entrySet()){
String subCompanyId = entry.getKey();
//分部假别假期规则id
@ -193,18 +203,29 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
if (psersonSet == null) {
personMap.put(userId,subCompanyHolidayMap);
}else {
Map<String,String> newMap = Maps.newHashMap();
for (Map.Entry<String,String> personGroupHolidayEntry :subCompanyHolidayMap.entrySet()){
if (psersonSet.get(personGroupHolidayEntry.getKey()) == null){
newMap.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue());
psersonSet.put(personGroupHolidayEntry.getKey(),personGroupHolidayEntry.getValue());
}
}
personMap.put(userId,newMap);
personMap.put(userId,psersonSet);
}
}
}
log.info("personMap : [{}]",personMap);
return personMap;
Map<String,Object> newpersonMap = Maps.newHashMap();
for (Map.Entry<String,Object> entry :personMap.entrySet()){
String userId = entry.getKey();
Map<String, String> vocationMap = (Map<String, String>)entry.getValue();
Map<String,Object> dataMap = Maps.newHashMap();
for (Map.Entry<String,String> vocationEntry :vocationMap.entrySet()){
String jb = vocationEntry.getKey();
String dataId = vocationEntry.getValue();
dataMap.put(jb,vacationGroupByDataIdMap.get(dataId));
}
newpersonMap.put(userId,dataMap);
}
return newpersonMap;
}
/**

@ -60,7 +60,7 @@ public class CommonUtil {
public static Set<String> getDataIds(String resourceId,String modeId,String startDate,String endDate){
String sql = "select dxlx,dataid,dx from uf_syzz where modeid=?";
String sql = "select dxlx,dataid,dx from uf_jcl_syzz where modeid=?";
List<Map<String,Object>> organizationList = DbTools.getSqlToList(sql,modeId);
sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,resourceId);

@ -1,21 +1,22 @@
package com.engine.common.util;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;
import weaver.general.TimeUtil;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
public class DateUtil {
public static DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static DateTimeFormatter yyyyMMddHHmmss = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static DateTimeFormatter yyyyMMddHHmm = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
public static DateTimeFormatter yyyyMM = DateTimeFormatter.ofPattern("yyyy-MM");
public static DateTimeFormatter yyyy = DateTimeFormatter.ofPattern("yyyy");
public static String beforeMonth(String time){
public static String beforeMonth(String time,int month){
LocalDateTime localDateTime = DateUtil.getTime(time);
return localDateTime.minusMonths(1).format(yyyyMM);
return localDateTime.minusMonths(month).format(yyyyMMdd);
}
public static String lastMonth(String time){
LocalDateTime localDateTime = DateUtil.getTime(time);
@ -32,6 +33,16 @@ public class DateUtil {
return localDateTime.plusMonths(month).format(dateTimeFormatter);
}
public static String nextYear(String time,int year,DateTimeFormatter dateTimeFormatter){
LocalDateTime localDateTime = DateUtil.getTime(time);
return localDateTime.plusYears(year).format(dateTimeFormatter);
}
public static String beforeYear(String time,int year,DateTimeFormatter dateTimeFormatter){
LocalDateTime localDateTime = DateUtil.getTime(time);
return localDateTime.minusYears(year).format(dateTimeFormatter);
}
public static String beforeDay(String time,long day){
@ -102,6 +113,7 @@ public class DateUtil {
public static long getBetWeenHours(String startTime){
Duration duration = Duration.between(LocalDateTime.parse(startTime,yyyyMMddHHmmss),LocalDateTime.now());
return duration.toHours();
}
/**
@ -111,6 +123,7 @@ public class DateUtil {
*/
public static int getBetWeenYears(String startTime){
Period duration = Period.between(LocalDate.parse(startTime,yyyyMMdd),LocalDateTime.now().toLocalDate());
return duration.getYears();
}
@ -121,10 +134,28 @@ public class DateUtil {
*/
public static int getBetWeenYears(String startTime,String endTime){
Period duration = Period.between(LocalDate.parse(startTime,yyyyMMdd),LocalDate.parse(endTime,yyyyMMdd));
return duration.getYears();
}
/**
*
* @param startTime yyyy-MM-dd
* @return
*/
public static int getBetWeenMonths(String startTime,String endTime){
LocalDateTime startDate = DateUtil.getTime(startTime);
LocalDateTime endDate = DateUtil.getTime(endTime);
YearMonth startYearMonth = YearMonth.from(startDate);
YearMonth endYearMonth = YearMonth.from(endDate);
int betweenMonth = (int) ChronoUnit.MONTHS.between(startYearMonth, endYearMonth);
if (startDate.getDayOfMonth()>endDate.getDayOfMonth()){
betweenMonth= betweenMonth-1;
}
return betweenMonth;
}
/**
*
* @param startTime yyyy-MM-dd
@ -181,10 +212,37 @@ public class DateUtil {
* @return
*/
public static long getBetWeenHours(String startTime,String endTime){
Duration duration = Duration.between(LocalDateTime.parse(startTime,yyyyMMddHHmmss),LocalDateTime.parse(endTime,yyyyMMddHHmmss));
Duration duration = Duration.between(getTime(startTime),getTime(endTime));
return duration.toHours();
}
/**
*
* @param startTime
* @param endTime
* @return
*/
public static int getBetweenWeeks(String startTime,String endTime){
int days = getBetWeenDays(startTime,endTime);
int dayOfWeek = TimeUtil.getDayOfWeek(startTime);
if (dayOfWeek == 0){
dayOfWeek = 7;
}
days = days-(7-dayOfWeek);
return days/7;
}
/**
*
* @param time
* @return
*/
public static int getDays(String time,int CalendarType){
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.valueOf(time.split("-")[0]), Integer.valueOf(time.split("-")[1]) - 1, 1);
return calendar.getActualMaximum(CalendarType);
}
}

@ -537,8 +537,4 @@ public class Utils<T> {
}
return 0;
}
public static void test1(){
Object obj = new Object();
System.out.println(obj);
}
}

@ -1,4 +0,0 @@
# attendance.attendanceAnalysis
## 考勤分析模块
## 用于计算分析人员的考勤,算出正常上下班、加班、早退、迟到等一些列考勤项目,并入到出勤结果表

@ -1,4 +0,0 @@
# attendance.attendanceAnalysis
## 考勤方案模块
##

@ -1,4 +0,0 @@
# attendance.attendanceAnalysis
## 考勤组件模块
## person_group 人员分组功能组件

@ -1,4 +0,0 @@
# attendance.attendanceAnalysis
## 考勤流程模块
##

Binary file not shown.

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

@ -1,7 +1,61 @@
import com.engine.attendance.vacation.util.VocationCommonUtil;
import com.engine.common.util.DateUtil;
import com.engine.common.util.Utils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import sun.misc.BASE64Decoder;
import weaver.general.TimeUtil;
import weaver.general.Util;
import java.sql.Date;
import java.util.*;
import java.util.stream.Collectors;
public class TestObj {
public static void main(String[] args) {
System.out.println("-".split("-")[0]);
public static void main(String[] args) throws Exception{
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.valueOf("2024"), Integer.valueOf("04") - 1, 1);
//
// System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
// System.out.println(DateUtil.getBetWeenHours("2024-01-03 15:00:00","2024-01-03 15:35"));
// System.out.println(DateUtil.getTime("2024-01-03 16:00:00").compareTo(DateUtil.getTime("2024-01-03 15:35")));
//System.out.println(DateUtil.getBetWeenMonths("2021-12-01","2021-12-01"));
// System.out.println(DateUtil.getTime("2023-01-01").getDayOfWeek());
// System.out.println(TimeUtil.getWeekOfYear(Date.valueOf(DateUtil.getTime("2023-01-09").toLocalDate())));
// System.out.println(DateUtil.beforeMonth("2023-11-15",3));
// System.out.println(DateUtil.getTime("2023-12-16 15:05:01").compareTo(DateUtil.getTime("2023-12-16 24:00:00")));
//
List<String> list = new ArrayList<>();
// System.out.println(DateUtil.getBetWeenDays("2024-01-02","2024-01-10"));
// System.out.println(DateUtil.getBetWeenMonths("2021-06-01","2022-07-01"));
// System.out.println(DateUtil.beforeMonth("2023-01-01",6));
System.out.println(DateUtil.getBetWeenYears("2023-05-01","2024-01-01"));
//System.out.println(DateUtil.getBetWeenDays("2023-01-01","2023-01-01"));
// System.out.println(DateUtil.getBetWeenDays("2023-08-02","2024-01-01"));
//System.out.println(VocationCommonUtil.computeRestDays(70,365,7,"4"));
//System.out.println(DateUtil.nextMonth("2023-11-25 15:22:11",1,DateUtil.yyyyMM));
// System.out.println(DateUtil.getBetWeenYears("2023-05-01","2025-04-31"));
// List<Map<String,Object>> vacationList = Lists.newArrayList();
// vacationList.add(new HashMap(){{
// put("dataid","18");
// put("jb","112");
//
// }});
// vacationList.add(new HashMap(){{
// put("dataid","18");
// put("jb","112");
//
// }});
//
// Map<String,String> vacationMap = Maps.newHashMap();
// for (Map<String,Object> vocation:vacationList){
// vacationMap.put(vocation.get("dataid").toString(),vocation.get("jb").toString());
// }
}
}

@ -0,0 +1,44 @@
import com.engine.attendance.vacation.job.holidaygeneration.tactics.SinglePaymentInFullWay;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestSinglePaymentFullWay {
public static void main(String[] args) throws Exception{
Map<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='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());
System.out.println(vocationList);
// List<Map<String,Object>> vocationList = Lists.newArrayList();
// vocationList.add(new HashMap(){{
// put("edsc","9.50");
// put("bdlx","0");
// put("jsdk","1");
// put("tqdkfzs","720");
// put("sfkt","1");
// put("dtjssj","12:00");
// put("zddxfz","30");
// put("bcxx","25");
// put("dxhs","5");
// put("bcsdxx","09:00-13:00|13:00-18:30");
// put("sfdx","0");
// put("dtkssj","09:00");
// put("thdkfzs","720");
// put("ksdk","0");
// put("rqlx","11");
// }});
param.put("vocationList",vocationList);
new SinglePaymentInFullWay().compute(param);
}
}
Loading…
Cancel
Save