zm_dev
sy 8 months ago
commit e881a8ff7e

2
.idea/.gitignore vendored

@ -1,2 +0,0 @@
# Datasource local storage ignored files
/dataSources/

@ -1,8 +0,0 @@
<component name="ArtifactManager">
<artifact type="jar" name="hrm-attendance">
<output-path>$PROJECT_DIR$/out/artifacts/hrm_attendance</output-path>
<root id="archive" name="hrm-attendance.jar">
<element id="module-output" name="hrm-attendance" />
</root>
</artifact>
</component>

@ -3,11 +3,6 @@
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
</profile>
</annotationProcessing>
</component>
</project>

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="dataSourceStorageLocal">
<data-source name="mysql_kq" uuid="d3d803e4-15c6-4a6b-a969-c9fd6f2a8d51">
<database-info product="MySQL" version="5.7.39" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.21 (Revision: 33f65445a1bcc544eb0120491926484da168f199)" dbms="MYSQL" exact-version="5.7.39" exact-driver-version="8.0">
<extra-name-characters>#@</extra-name-characters>
<identifier-quote-string>`</identifier-quote-string>
</database-info>
<case-sensitivity plain-identifiers="lower" quoted-identifiers="lower" />
<secret-storage>master_key</secret-storage>
<user-name>fanwei</user-name>
<schema-mapping>
<introspection-scope>
<node kind="schema" qname="@" />
</introspection-scope>
</schema-mapping>
</data-source>
<data-source name="oracle_kq" uuid="6e9573b4-f3a0-42a4-9e25-9972cca8a99c">
<database-info product="" version="" jdbc-version="" driver-name="" driver-version="" dbms="ORACLE" exact-version="0" />
<schema-mapping />
</data-source>
</component>
</project>

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="mysql_kq" uuid="d3d803e4-15c6-4a6b-a969-c9fd6f2a8d51">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://221.226.25.34:8286/ecologyjcl</jdbc-url>
</data-source>
<data-source source="LOCAL" name="oracle_kq" uuid="6e9573b4-f3a0-42a4-9e25-9972cca8a99c">
<driver-ref>oracle</driver-ref>
<synchronize>true</synchronize>
<auto-commit>false</auto-commit>
<jdbc-driver>oracle.jdbc.OracleDriver</jdbc-driver>
<jdbc-url>jdbc:oracle:thin:@192.168.0.106:1521:ecology</jdbc-url>
</data-source>
</component>
</project>

@ -1,36 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="INNER_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="METHOD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
</value>
</option>
<option name="FIELD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="IGNORE_DEPRECATED" value="false" />
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
<option name="myAdditionalJavadocTags" value="date,Author:,Date:,Description:" />
</inspection_tool>
</profile>
</component>

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

@ -1,9 +0,0 @@
<component name="libraryTable">
<library name="classbean">
<CLASSES>
<root url="file://D:/weaver0/ecology/classbean" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -1,9 +0,0 @@
<component name="libraryTable">
<library name="hrm-attendance">
<CLASSES>
<root url="jar://$PROJECT_DIR$/out/artifacts/hrm_attendance/hrm-attendance.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/hrm-attendance.iml" filepath="$PROJECT_DIR$/hrm-attendance.iml" />
</modules>
</component>
</project>

@ -1,124 +0,0 @@
<?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>

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -9,12 +9,7 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="Changes">
<change beforePath="$PROJECT_DIR$/WEB-INF/prop/weaver.properties" beforeDir="false" afterPath="$PROJECT_DIR$/WEB-INF/prop/weaver.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/WEB-INF/sqllog/ecologysql" beforeDir="false" afterPath="$PROJECT_DIR$/WEB-INF/sqllog/ecologysql" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/Tset_sy.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/Tset_sy.java" afterDir="false" />
</list>
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="考勤-出差流程,明细数据生成接口" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@ -83,8 +78,12 @@
<option name="notificationShown" value="true" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\项目备份\考勤\hrm-attendance\src\com\engine\jucailin\cmd\calendar" />
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\项目备份\考勤\hrm-attendance\log\interceptSql" />
<recent name="D:\项目备份\考勤\hrm-attendance\test" />
<recent name="D:\项目备份\考勤\hrm-attendance\src" />
<recent name="D:\项目备份\考勤\hrm-attendance" />
<recent name="D:\项目备份\考勤\hrm-attendance\workflow\request\hrmattendance" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="sy" />
@ -93,12 +92,8 @@
<recent name="com.engine.jucailinkq.attendance.workflow.cmd" />
<recent name="vocation" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\项目备份\考勤\hrm-attendance\log\interceptSql" />
<recent name="D:\项目备份\考勤\hrm-attendance\test" />
<recent name="D:\项目备份\考勤\hrm-attendance\src" />
<recent name="D:\项目备份\考勤\hrm-attendance" />
<recent name="D:\项目备份\考勤\hrm-attendance\workflow\request\hrmattendance" />
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\项目备份\考勤\hrm-attendance\src\com\engine\jucailin\cmd\calendar" />
</key>
</component>
<component name="RunAnythingCache">
@ -858,10 +853,10 @@
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
<state x="-1404" y="109" width="949" height="813" key="CommitChangelistDialog2/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1722505341722" />
<state x="-1828" y="92" width="1736" height="848" key="DiffContextDialog" timestamp="1722505466456">
<state x="-1828" y="92" width="1736" height="848" key="DiffContextDialog" timestamp="1723022040897">
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
<state x="-1828" y="92" width="1736" height="848" key="DiffContextDialog/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1722505466456" />
<state x="-1828" y="92" width="1736" height="848" key="DiffContextDialog/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1723022040897" />
<state width="1877" height="166" key="GridCell.Tab.0.bottom" timestamp="1722505381234">
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
@ -906,10 +901,10 @@
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
<state x="-1309" y="175" key="SettingsEditor/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1722229748283" />
<state x="-1177" y="219" key="VCS.ChangeListViewerDialog" timestamp="1723021728699">
<state x="-1177" y="219" key="VCS.ChangeListViewerDialog" timestamp="1723021849225">
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
<state x="-1177" y="219" key="VCS.ChangeListViewerDialog/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1723021728699" />
<state x="-1177" y="219" key="VCS.ChangeListViewerDialog/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1723021849225" />
<state x="-1368" y="249" key="Vcs.Push.Dialog.v2" timestamp="1722505619707">
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
@ -926,10 +921,10 @@
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
<state x="-1284" y="249" width="730" height="534" key="find.popup/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1722498243800" />
<state x="-1290" y="307" key="git4idea.merge.GitPullDialog" timestamp="1722505558535">
<state x="-1290" y="307" key="git4idea.merge.GitPullDialog" timestamp="1723022000383">
<screen x="-1920" y="0" width="1920" height="1032" />
</state>
<state x="-1290" y="307" key="git4idea.merge.GitPullDialog/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1722505558535" />
<state x="-1290" y="307" key="git4idea.merge.GitPullDialog/0.0.1493.885/-1920.0.1920.1032@-1920.0.1920.1032" timestamp="1723022000383" />
<state x="-1311" y="323" key="git4idea.ui.GitUnstashDialog" timestamp="1721898168469">
<screen x="-1920" y="0" width="1920" height="1032" />
</state>

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="hrm-attendance" level="project" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="file://D:/kq106/WEB-INF/lib" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://D:/kq106/WEB-INF/lib" />
</SOURCES>
<jarDirectory url="file://D:/kq106/WEB-INF/lib" recursive="false" />
<jarDirectory url="file://D:/kq106/WEB-INF/lib" recursive="false" type="SOURCES" />
</library>
</orderEntry>
<orderEntry type="library" name="classbean" level="project" />
</component>
</module>

@ -1,171 +0,0 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (memory/allocation.inline.hpp:61), pid=16064, tid=5468
#
# JRE version: (8.0_40-b25) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode windows-amd64 compressed oops)
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
--------------- T H R E A D ---------------
Current thread (0x000000000118d800): JavaThread "Unknown thread" [_thread_in_vm, id=5468, stack(0x0000000002c90000,0x0000000002d90000)]
Stack: [0x0000000002c90000,0x0000000002d90000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x32b47a]
V [jvm.dll+0x2797f3]
V [jvm.dll+0x27a489]
V [jvm.dll+0x2717a5]
V [jvm.dll+0x1606]
V [jvm.dll+0x3f7cf2]
V [jvm.dll+0x3f868f]
V [jvm.dll+0x3f875d]
V [jvm.dll+0x3f8926]
V [jvm.dll+0xf2c12]
V [jvm.dll+0x20f139]
V [jvm.dll+0x240d9a]
V [jvm.dll+0x15b941]
C [java.exe+0x216e]
C [java.exe+0xcce7]
C [java.exe+0xcd7b]
C [KERNEL32.DLL+0x17344]
C [ntdll.dll+0x4cc91]
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x000000000118d800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=5468, stack(0x0000000002c90000,0x0000000002d90000)]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap:
PSYoungGen total 75776K, used 1300K [0x000000076b800000, 0x0000000770c80000, 0x00000007c0000000)
eden space 65024K, 2% used [0x000000076b800000,0x000000076b9451f8,0x000000076f780000)
from space 10752K, 0% used [0x0000000770200000,0x0000000770200000,0x0000000770c80000)
to space 10752K, 0% used [0x000000076f780000,0x000000076f780000,0x0000000770200000)
ParOldGen total 173568K, used 0K [0x00000006c2800000, 0x00000006cd180000, 0x000000076b800000)
object space 173568K, 0% used [0x00000006c2800000,0x00000006c2800000,0x00000006cd180000)
Metaspace used 766K, capacity 4480K, committed 4480K, reserved 1056768K
class space used 75K, capacity 384K, committed 384K, reserved 1048576K
Card table byte_map: [0x0000000012410000,0x0000000012c00000] byte_map_base: 0x000000000edfc000
Marking Bits: (ParMarkBitMap*) 0x0000000071914040
Begin Bits: [0x0000000013750000, 0x00000000176b0000)
End Bits: [0x00000000176b0000, 0x000000001b610000)
Polling page: 0x0000000000b90000
CodeCache: size=245760Kb used=328Kb max_used=328Kb free=245431Kb
bounds [0x0000000003050000, 0x00000000032c0000, 0x0000000012050000]
total_blobs=57 nmethods=0 adapters=37
compilation: enabled
Compilation events (0 events):
No events
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Internal exceptions (0 events):
No events
Events (10 events):
Event: 0.028 loading class java/lang/Short
Event: 0.028 loading class java/lang/Short done
Event: 0.028 loading class java/lang/Integer
Event: 0.028 loading class java/lang/Integer done
Event: 0.028 loading class java/lang/Long
Event: 0.028 loading class java/lang/Long done
Event: 0.028 loading class java/lang/NullPointerException
Event: 0.029 loading class java/lang/NullPointerException done
Event: 0.029 loading class java/lang/ArithmeticException
Event: 0.029 loading class java/lang/ArithmeticException done
Dynamic libraries:
0x00007ff7bc530000 - 0x00007ff7bc567000 D:\soft\JDK8\bin\java.exe
0x00007ffd0c910000 - 0x00007ffd0cb08000 C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffd0acf0000 - 0x00007ffd0adad000 C:\WINDOWS\System32\KERNEL32.DLL
0x00007ffd0a230000 - 0x00007ffd0a526000 C:\WINDOWS\System32\KERNELBASE.dll
0x00007ffd0adb0000 - 0x00007ffd0ae60000 C:\WINDOWS\System32\ADVAPI32.dll
0x00007ffd0a950000 - 0x00007ffd0a9ee000 C:\WINDOWS\System32\msvcrt.dll
0x00007ffd0aec0000 - 0x00007ffd0af60000 C:\WINDOWS\System32\sechost.dll
0x00007ffd0ba80000 - 0x00007ffd0bba3000 C:\WINDOWS\System32\RPCRT4.dll
0x00007ffd0a780000 - 0x00007ffd0a7a7000 C:\WINDOWS\System32\bcrypt.dll
0x00007ffd0b8e0000 - 0x00007ffd0ba7f000 C:\WINDOWS\System32\USER32.dll
0x00007ffd0a530000 - 0x00007ffd0a552000 C:\WINDOWS\System32\win32u.dll
0x00007ffd0aa50000 - 0x00007ffd0aa7b000 C:\WINDOWS\System32\GDI32.dll
0x00007ffd0a660000 - 0x00007ffd0a777000 C:\WINDOWS\System32\gdi32full.dll
0x00007ffd0a860000 - 0x00007ffd0a8fd000 C:\WINDOWS\System32\msvcp_win.dll
0x00007ffd0a560000 - 0x00007ffd0a660000 C:\WINDOWS\System32\ucrtbase.dll
0x00007ffcf48d0000 - 0x00007ffcf4b6a000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16\COMCTL32.dll
0x00007ffd0c880000 - 0x00007ffd0c8af000 C:\WINDOWS\System32\IMM32.DLL
0x00000000719a0000 - 0x0000000071a72000 D:\soft\JDK8\jre\bin\msvcr100.dll
0x0000000071110000 - 0x0000000071993000 D:\soft\JDK8\jre\bin\server\jvm.dll
0x00007ffd0bbb0000 - 0x00007ffd0bbb8000 C:\WINDOWS\System32\PSAPI.DLL
0x00007ffced070000 - 0x00007ffced079000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x00007ffd0c810000 - 0x00007ffd0c87b000 C:\WINDOWS\System32\WS2_32.dll
0x00007ffd04ee0000 - 0x00007ffd04eea000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x00007ffcf98d0000 - 0x00007ffcf98f7000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x0000000071100000 - 0x000000007110f000 D:\soft\JDK8\jre\bin\verify.dll
0x00000000710d0000 - 0x00000000710f9000 D:\soft\JDK8\jre\bin\java.dll
0x0000000071080000 - 0x00000000710a3000 D:\soft\JDK8\jre\bin\instrument.dll
0x00000000710b0000 - 0x00000000710c6000 D:\soft\JDK8\jre\bin\zip.dll
0x00007ffd07b90000 - 0x00007ffd07d74000 C:\WINDOWS\SYSTEM32\dbghelp.dll
0x00007ffd0a040000 - 0x00007ffd0a0c2000 C:\WINDOWS\System32\bcryptPrimitives.dll
VM Arguments:
jvm_args: -javaagent:D:\soft\IntelliJ IDEA 2021.2\lib\idea_rt.jar=50114:D:\soft\IntelliJ IDEA 2021.2\bin -Dfile.encoding=UTF-8
java_command: TestObj
java_class_path (initial): C:\Users\liuliang\AppData\Local\Temp\classpath1755129399.jar;D:\soft\IntelliJ IDEA 2021.2\lib\idea_rt.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=D:\soft\JDK8
CLASSPATH=.;D:\soft\JDK8\lib\dt.jar;D:\soft\JDK8\lib\tools.jar;D:\Resin\lib\resin.jar;D:\WEAVER\Resin\lib\resin.jar
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\soft\JDK8\jre\bin;D:\soft\apache-maven-3.5.0\bin;D:\soft\hadoop-2.7.7\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Azure Data Studio\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;D:\nodejs\;D:\Git\cmd;C:\Program Files\Bandizip\;C:\Program Files\TortoiseSVN\bin;C:\Users\liuliang\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Azure Data Studio\bin;D:\Microsoft VS Code\bin;D:\nodejs\node_global;D:\soft\mysql-8.0.29-winx64\bin;
USERNAME=liuliang
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 13, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 10.0 , 64 bit Build 19041 (10.0.19041.3636)
CPU:total 6 (6 cores per cpu, 1 threads per core) family 6 model 158 stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, tsc, tscinvbit, bmi1, bmi2, adx
Memory: 4k page, physical 16611380k(3183404k free), swap 20805684k(6628k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.40-b25) for windows-amd64 JRE (1.8.0_40-b25), built on Feb 10 2015 21:53:57 by "java_re" with MS VC++ 10.0 (VS2010)
time: Fri Jun 21 17:46:11 2024
elapsed time: 0 seconds (0d 0h 0m 0s)

File diff suppressed because one or more lines are too long

@ -120,108 +120,91 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
Map<String,List<Map<String,Object>>> overtimePlanMap = DbTools.getSqlToList(sql,params.get("pbdx"),params.get("startDate"),params.get("endDate")).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
//考勤项目
//日期集合
// Map<String,Object> dateParam = Maps.newHashMap();
// dateParam.put("nd",Util.null2String(params.get("startDate")).split("-")[0]);
// dateParam.put("glpb",glpb);
// List<Map<String,Object>> list = getDate(dateParam);
// Map<String,String> dateMap = list.stream().collect(Collectors.toMap(e->Util.null2String(e.get("rq")),e->Util.null2String(e.get("rqlx"))));
for (Map.Entry<String,List<Map<String,Object>>> e: overtimePlanMap.entrySet()){
if (resultMap.get(e.getKey()) == null){
resultMap.put(e.getKey(),Lists.newArrayList());
}
List<Map<String,Object>> resultList = resultMap.get(e.getKey());
List<Map<String,Object>> schedulingdateMap = schedulingMapBydate.get(e.getKey());
Map<String,Object> overtimePlan = e.getValue().get(0);
Map<String,Object> map = Maps.newHashMap();
if (!overtimePlan.get("ksrq").equals(overtimePlan.get("jsrq"))){
map.put("sfkt","1");
}else {
map.put("sfkt","0");
}
//查找对应的考勤项目
String querySql = "select a.id keyid,a.* from uf_jcl_kq_kqxm a where id=?";
List<Map<String,Object>> overPlanattendanceItems = DbTools.getSqlToList(querySql,overtimePlan.get("jblx"));
List<Map<String,Object>> overtimePlanList = e.getValue();
for (Map<String,Object> overtimePlan:overtimePlanList){
Map<String,Object> map = Maps.newHashMap();
if (!overtimePlan.get("ksrq").equals(overtimePlan.get("jsrq"))){
map.put("sfkt","1");
}else {
map.put("sfkt","0");
}
//查找对应的考勤项目
String querySql = "select a.id keyid,a.* from uf_jcl_kq_kqxm a where id=?";
List<Map<String,Object>> overPlanattendanceItems = DbTools.getSqlToList(querySql,overtimePlan.get("jblx"));
map.put("bcxx",resultList == null || resultList.size()==0 || resultList.get(0) ==null ? "" :resultList.get(0).get("bcxx"));
map.put("bcsdxx",resultList == null || resultList.size()==0 || resultList.get(0) ==null ? "":resultList.get(0).get("bcsdxx"));
if (resultList.size()>0){
map.putAll(resultList.get(0));
// map.put("edsc",Util.null2String(resultList.get(0).get("edsc")));
// map.put("sfdx",Util.null2String(resultList.get(0).get("sfdx")));
// map.put("zddxfz",Util.null2String(resultList.get(0).get("zddxfz")));
// map.put("dxhs",Util.null2String(resultList.get(0).get("dxhs")));
// map.put("sfxx",resultList.get(0).get("sfxx"));
// map.put("btgz",resultList.get(0).get("btgz"));
// map.put("xxbdkzdjb",resultList.get(0).get("xxbdkzdjb"));
}else {
map.put("edsc","0");
}
map.put("edts","0");
map.put("bdlx", ClassSegmentTypeEnum.OVERTIME_PLAN.getKey());
map.put("dtkssj",overtimePlan.get("kssj"));
map.put("dtjssj",overtimePlan.get("jssj"));
map.put("ksdk","0");
map.put("jsdk","0");
if (schedulingdateMap != null && schedulingdateMap.size()>0){
map.put("sfxx",Util.null2String(schedulingdateMap.get(0).get("sfxx")));
}
map.put("tqdkfzs","60");
map.put("thdkfzs","60");
map.put("rqlx",dateMap.get(e.getKey()));
map.put("edxss",overtimePlan.get("jbsc"));
map.put("edfzs",Double.valueOf(overtimePlan.get("jbsc").toString())*60);
map.put("jblx",overPlanattendanceItems);
if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) < 0){
map.put("gsrq", ClassBelongToEnum.YESTERDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) == 0){
map.put("gsrq", ClassBelongToEnum.NOWDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) > 0){
map.put("gsrq", ClassBelongToEnum.NEXTDAY.getKey());
}
if (overPlanattendanceItems.size() >0){
map.put("ksdk",overPlanattendanceItems.get(0).get("ksjbbxydk"));
map.put("jsdk",overPlanattendanceItems.get(0).get("jsjbbxydk"));
map.put("tqdkfzs",overPlanattendanceItems.get(0).get("tqdkyxfzs"));
map.put("thdkfzs",overPlanattendanceItems.get(0).get("thdkyxfzs"));
map.put("jbwdhlfzs",overPlanattendanceItems.get(0).get("jbwdhlfzs"));
map.put("jbzzhlfzs",overPlanattendanceItems.get(0).get("jbzzhlfzs"));
}
if (resultList.size() > 0){
String kssjbegin = Utils.getkssjTime(resultList.get(0),e.getKey());
String kssjend = Utils.getkssjTime(resultList.get(resultList.size()-1),e.getKey());
String kssj = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjbegin)) <0){
//加班计划在开头
resultList.add(0,map);
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjend)) >0){
//加班计划在末尾
resultList.add(map);
map.put("bcxx",resultList == null || resultList.size()==0 || resultList.get(0) ==null ? "" :resultList.get(0).get("bcxx"));
map.put("bcsdxx",resultList == null || resultList.size()==0 || resultList.get(0) ==null ? "":resultList.get(0).get("bcsdxx"));
if (resultList.size()>0){
map.putAll(resultList.get(0));
}else {
if (resultList.size() > 1){
//加班计划在中间
for (int j=1;j<resultList.size();j++){
String kssj1 = Utils.getkssjTime(resultList.get(j),e.getKey());
String kssj2 = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
String kssj3 = Utils.getkssjTime(resultList.get(j-1),e.getKey());
if (DateUtil.getTime(kssj1).compareTo(DateUtil.getTime(kssj2)) >=0 && DateUtil.getTime(kssj3).compareTo(DateUtil.getTime(kssj2)) <=0){
resultList.add(j,map);
break;
map.put("edsc","0");
}
map.put("edts","0");
map.put("bdlx", ClassSegmentTypeEnum.OVERTIME_PLAN.getKey());
map.put("dtkssj",overtimePlan.get("kssj"));
map.put("dtjssj",overtimePlan.get("jssj"));
map.put("ksdk","0");
map.put("jsdk","0");
if (schedulingdateMap != null && schedulingdateMap.size()>0){
map.put("sfxx",Util.null2String(schedulingdateMap.get(0).get("sfxx")));
}
map.put("tqdkfzs","60");
map.put("thdkfzs","60");
map.put("rqlx",dateMap.get(e.getKey()));
map.put("edxss",overtimePlan.get("jbsc"));
map.put("edfzs",Double.valueOf(overtimePlan.get("jbsc").toString())*60);
map.put("jblx",overPlanattendanceItems);
if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) < 0){
map.put("gsrq", ClassBelongToEnum.YESTERDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) == 0){
map.put("gsrq", ClassBelongToEnum.NOWDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) > 0){
map.put("gsrq", ClassBelongToEnum.NEXTDAY.getKey());
}
if (overPlanattendanceItems.size() >0){
map.put("ksdk",overPlanattendanceItems.get(0).get("ksjbbxydk"));
map.put("jsdk",overPlanattendanceItems.get(0).get("jsjbbxydk"));
map.put("tqdkfzs",overPlanattendanceItems.get(0).get("tqdkyxfzs"));
map.put("thdkfzs",overPlanattendanceItems.get(0).get("thdkyxfzs"));
map.put("jbwdhlfzs",overPlanattendanceItems.get(0).get("jbwdhlfzs"));
map.put("jbzzhlfzs",overPlanattendanceItems.get(0).get("jbzzhlfzs"));
}
if (resultList.size() > 0){
String kssjbegin = Utils.getkssjTime(resultList.get(0),e.getKey());
String kssjend = Utils.getkssjTime(resultList.get(resultList.size()-1),e.getKey());
String kssj = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjbegin)) <0){
//加班计划在开头
resultList.add(0,map);
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjend)) >0){
//加班计划在末尾
resultList.add(map);
}else {
if (resultList.size() > 1){
//加班计划在中间
for (int j=1;j<resultList.size();j++){
String kssj1 = Utils.getkssjTime(resultList.get(j),e.getKey());
String kssj2 = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
String kssj3 = Utils.getkssjTime(resultList.get(j-1),e.getKey());
if (DateUtil.getTime(kssj1).compareTo(DateUtil.getTime(kssj2)) >=0 && DateUtil.getTime(kssj3).compareTo(DateUtil.getTime(kssj2)) <=0){
resultList.add(j,map);
break;
}
}
}
}
}else {
resultList.add(map);
}
}else {
resultList.add(map);
}
}
schedulMap.put("schedulingResultsMap",resultMap);

@ -75,6 +75,8 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand<Map<String,Object
String realityEndime = Util.null2String(params.get("realityEndime"));
//考勤项目
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
//不需要入加班结果和假期余额
String notNeedInsertResult = Util.null2String(params.get("realityEndime"));
long diffdays = Long.valueOf(Util.null2String(params.get("diffdays")));
@ -88,61 +90,64 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand<Map<String,Object
Map<String,Object> resultMap = Maps.newHashMap();
if (!"".equals(jbqsfzs)){
if (jbsc < Integer.valueOf(jbqsfzs)){
//小于最小加班分钟数不算加班
if (params.get("beSplit") == null || !(boolean)params.get("beSplit")){
if (!"".equals(jbqsfzs)){
if (jbsc < Integer.valueOf(jbqsfzs)){
//小于最小加班分钟数不算加班
workOverTimeItems.put("item",workTimeBeLateItems.get(0).get("key"));
workOverTimeItems.put("itemduration","0");
return workOverTimeItems;
}else if (jbsc >= Integer.valueOf(jbqsfzs) && !"".equals(ccqszhdhsfzs)){
jbsc = Double.valueOf(Utils.getItemdurationDown(Integer.valueOf(ccqszhdhsfzs), AccountingUnitEnum.MINUTES.getKey(),Double.valueOf(jbsc).intValue()-Integer.valueOf(jbqsfzs),AccountingUnitEnum.MINUTES)).intValue()+Integer.valueOf(jbqsfzs);
}
}
if (jbsc <= 0 || "".equals(realityStartTime) || "".equals(realityEndime)){
//加班时长为0
workOverTimeItems.put("item",workTimeBeLateItems.get(0).get("key"));
workOverTimeItems.put("itemduration","0");
return workOverTimeItems;
}else if (jbsc >= Integer.valueOf(jbqsfzs) && !"".equals(ccqszhdhsfzs)){
jbsc = Double.valueOf(Utils.getItemdurationDown(Integer.valueOf(ccqszhdhsfzs), AccountingUnitEnum.MINUTES.getKey(),Double.valueOf(jbsc).intValue()-Integer.valueOf(jbqsfzs),AccountingUnitEnum.MINUTES)).intValue()+Integer.valueOf(jbqsfzs);
}
}
if (jbsc <= 0 || "".equals(realityStartTime) || "".equals(realityEndime)){
//加班时长为0
workOverTimeItems.put("item",workTimeBeLateItems.get(0).get("key"));
workOverTimeItems.put("itemduration","0");
return workOverTimeItems;
}
//自动扣除
if ("2".equals(ccclfs) && workOverTimeResults == null){
String startDate = analysisDate.split("-")[0]+"-"+ analysisDate.split("-")[1]+"-01";
String endDate = analysisDate.split("-")[0]+"-"+ analysisDate.split("-")[1]+"-"+diffdays;
workOverTimeResults =getWorkOverTimeResults(startDate,endDate,userId);
//自动扣除
if ("2".equals(ccclfs) && workOverTimeResults == null){
String startDate = analysisDate.split("-")[0]+"-"+ analysisDate.split("-")[1]+"-01";
String endDate = analysisDate.split("-")[0]+"-"+ analysisDate.split("-")[1]+"-"+diffdays;
workOverTimeResults =getWorkOverTimeResults(startDate,endDate,userId);
}
if ("2".equals(ccclfs) && !"".equals(rzdjbxss) && (DateTypeEnum.WORK_DAY.getKey().equals(rqlx) || DateTypeEnum.CHANGECLASS.getKey().equals(rqlx))){
//工作日加班最大数
double maxDayTime = Double.valueOf(rzdjbxss) *60;
if (jbsc > maxDayTime){
jbsc = maxDayTime;
}
}
if ("2".equals(ccclfs) && !"".equals(zzdjbxss)){
//每周最大加班小时数
double weekTime = getWeekTime(workOverTimeResults,analysisDate);
double maxWeekTime = Double.valueOf(zzdjbxss) *60;
double time = jbsc+weekTime;
if (time > maxWeekTime){
jbsc = maxWeekTime-weekTime;
if ("2".equals(ccclfs) && !"".equals(rzdjbxss) && (DateTypeEnum.WORK_DAY.getKey().equals(rqlx) || DateTypeEnum.CHANGECLASS.getKey().equals(rqlx))){
//工作日加班最大数
double maxDayTime = Double.valueOf(rzdjbxss) *60;
if (jbsc > maxDayTime){
jbsc = maxDayTime;
}
}
}
if ("2".equals(ccclfs) && !"".equals(yzdjbxss)){
//每月最大加班数
double monthTime = getMonthTime(workOverTimeResults,analysisDate);
double maxMonthTime = Double.valueOf(yzdjbxss) *60;
double time = jbsc+monthTime;
if (time > maxMonthTime){
jbsc = maxMonthTime-monthTime;
if ("2".equals(ccclfs) && !"".equals(zzdjbxss)){
//每周最大加班小时数
double weekTime = getWeekTime(workOverTimeResults,analysisDate);
double maxWeekTime = Double.valueOf(zzdjbxss) *60;
double time = jbsc+weekTime;
if (time > maxWeekTime){
jbsc = maxWeekTime-weekTime;
}
}
if ("2".equals(ccclfs) && !"".equals(yzdjbxss)){
//每月最大加班数
double monthTime = getMonthTime(workOverTimeResults,analysisDate);
double maxMonthTime = Double.valueOf(yzdjbxss) *60;
double time = jbsc+monthTime;
if (time > maxMonthTime){
jbsc = maxMonthTime-monthTime;
}
}
}
log.debug("最终加班时长: {}",jbsc);
workOverTimeItems.put("item",workTimeBeLateItems.get(0).get("key"));
double itemduration = Utils.getItemdurationDown(workOverTimeHsl,workOverTimeHsdw,Long.valueOf(Math.round(jbsc)).intValue(),AccountingUnitEnum.MINUTES);
workOverTimeItems.put("itemduration",itemduration);
workOverTimeItems.put("jbsc",jbsc);
/**
*

@ -374,24 +374,23 @@ public class ShiftServiceImpl extends Service implements ShiftService {
}
List<Map<String,Object>> resultList = resultMap.get(e.getKey());
// List<Map<String,Object>> schedulingdateMap = schedulingMapBydate.get(e.getKey());
Map<String,Object> overtimePlan = e.getValue().get(0);
Map<String,Object> map = Maps.newHashMap();
if (!overtimePlan.get("ksrq").equals(overtimePlan.get("jsrq"))){
map.put("sfkt","1");
}else {
map.put("sfkt","0");
}
//查找对应的考勤项目
String querySql = "select a.id keyid,a.* from uf_jcl_kq_kqxm a where id=?";
attendanceItems = DbTools.getSqlToList(querySql,overtimePlan.get("jblx"));
List<Map<String,Object>> overtimePlanList = e.getValue();
for (Map<String,Object> overtimePlan:overtimePlanList){
Map<String,Object> map = Maps.newHashMap();
if (!overtimePlan.get("ksrq").equals(overtimePlan.get("jsrq"))){
map.put("sfkt","1");
}else {
map.put("sfkt","0");
}
//查找对应的考勤项目
String querySql = "select a.id keyid,a.* from uf_jcl_kq_kqxm a where id=?";
attendanceItems = DbTools.getSqlToList(querySql,overtimePlan.get("jblx"));
map.put("bcxx", punchDate.compareTo(e.getKey()) != 0 ? "0" : shiftId);
map.put("bcsdxx", punchDate.compareTo(e.getKey()) != 0 ? "": bcsdxx);
if (resultList.size()>0){
map.putAll(resultList.get(0));
map.put("bcxx", punchDate.compareTo(e.getKey()) != 0 ? "0" : shiftId);
map.put("bcsdxx", punchDate.compareTo(e.getKey()) != 0 ? "": bcsdxx);
if (resultList.size()>0){
map.putAll(resultList.get(0));
// map.put("edsc",Util.null2String(resultList.get(0).get("edsc")));
// map.put("sfdx",Util.null2String(resultList.get(0).get("sfdx")));
// map.put("zddxfz",Util.null2String(resultList.get(0).get("zddxfz")));
@ -399,67 +398,67 @@ public class ShiftServiceImpl extends Service implements ShiftService {
// map.put("sfxx",resultList.get(0).get("sfxx"));
// map.put("btgz",resultList.get(0).get("btgz"));
// map.put("xxbdkzdjb",resultList.get(0).get("xxbdkzdjb"));
}else {
map.put("edsc","0");
}
map.put("edts","0");
map.put("bdlx", ClassSegmentTypeEnum.OVERTIME_PLAN.getKey());
map.put("dtkssj",overtimePlan.get("kssj"));
map.put("dtjssj",overtimePlan.get("jssj"));
map.put("ksdk","0");
map.put("jsdk","0");
if (punchDate.compareTo(e.getKey()) == 0){
map.put("sfxx", restSign);
}
map.put("tqdkfzs","60");
map.put("thdkfzs","60");
map.put("rqlx",dateType);
map.put("edxss",overtimePlan.get("jbsc"));
map.put("edfzs",Double.valueOf(overtimePlan.get("jbsc").toString())*60);
map.put("jblx",attendanceItems);
if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) < 0){
map.put("gsrq", ClassBelongToEnum.YESTERDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) == 0){
map.put("gsrq", ClassBelongToEnum.NOWDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) > 0){
map.put("gsrq", ClassBelongToEnum.NEXTDAY.getKey());
}
if (attendanceItems.size() >0){
map.put("ksdk",attendanceItems.get(0).get("ksjbbxydk"));
map.put("jsdk",attendanceItems.get(0).get("jsjbbxydk"));
map.put("tqdkfzs",attendanceItems.get(0).get("tqdkyxfzs"));
map.put("thdkfzs",attendanceItems.get(0).get("thdkyxfzs"));
map.put("jbwdhlfzs",attendanceItems.get(0).get("jbwdhlfzs"));
map.put("jbzzhlfzs",attendanceItems.get(0).get("jbzzhlfzs"));
}
if (resultList.size() > 0){
String kssjbegin = Utils.getkssjTime(resultList.get(0),e.getKey());
String kssjend = Utils.getkssjTime(resultList.get(resultList.size()-1),e.getKey());
String kssj = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjbegin)) <0){
//加班计划在开头
resultList.add(0,map);
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjend)) >0){
//加班计划在末尾
resultList.add(map);
}else {
if (resultList.size() > 1){
//加班计划在中间
for (int j=1;j<resultList.size();j++){
String kssj1 = Utils.getkssjTime(resultList.get(j),e.getKey());
String kssj2 = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
String kssj3 = Utils.getkssjTime(resultList.get(j-1),e.getKey());
if (DateUtil.getTime(kssj1).compareTo(DateUtil.getTime(kssj2)) >=0 && DateUtil.getTime(kssj3).compareTo(DateUtil.getTime(kssj2)) <=0){
resultList.add(j,map);
break;
map.put("edsc","0");
}
map.put("edts","0");
map.put("bdlx", ClassSegmentTypeEnum.OVERTIME_PLAN.getKey());
map.put("dtkssj",overtimePlan.get("kssj"));
map.put("dtjssj",overtimePlan.get("jssj"));
map.put("ksdk","0");
map.put("jsdk","0");
if (punchDate.compareTo(e.getKey()) == 0){
map.put("sfxx", restSign);
}
map.put("tqdkfzs","60");
map.put("thdkfzs","60");
map.put("rqlx",dateType);
map.put("edxss",overtimePlan.get("jbsc"));
map.put("edfzs",Double.valueOf(overtimePlan.get("jbsc").toString())*60);
map.put("jblx",attendanceItems);
if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) < 0){
map.put("gsrq", ClassBelongToEnum.YESTERDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) == 0){
map.put("gsrq", ClassBelongToEnum.NOWDAY.getKey());
}else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) > 0){
map.put("gsrq", ClassBelongToEnum.NEXTDAY.getKey());
}
if (attendanceItems.size() >0){
map.put("ksdk",attendanceItems.get(0).get("ksjbbxydk"));
map.put("jsdk",attendanceItems.get(0).get("jsjbbxydk"));
map.put("tqdkfzs",attendanceItems.get(0).get("tqdkyxfzs"));
map.put("thdkfzs",attendanceItems.get(0).get("thdkyxfzs"));
map.put("jbwdhlfzs",attendanceItems.get(0).get("jbwdhlfzs"));
map.put("jbzzhlfzs",attendanceItems.get(0).get("jbzzhlfzs"));
}
if (resultList.size() > 0){
String kssjbegin = Utils.getkssjTime(resultList.get(0),e.getKey());
String kssjend = Utils.getkssjTime(resultList.get(resultList.size()-1),e.getKey());
String kssj = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjbegin)) <0){
//加班计划在开头
resultList.add(0,map);
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjend)) >0){
//加班计划在末尾
resultList.add(map);
}else {
if (resultList.size() > 1){
//加班计划在中间
for (int j=1;j<resultList.size();j++){
String kssj1 = Utils.getkssjTime(resultList.get(j),e.getKey());
String kssj2 = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj");
String kssj3 = Utils.getkssjTime(resultList.get(j-1),e.getKey());
if (DateUtil.getTime(kssj1).compareTo(DateUtil.getTime(kssj2)) >=0 && DateUtil.getTime(kssj3).compareTo(DateUtil.getTime(kssj2)) <=0){
resultList.add(j,map);
break;
}
}
}
}
}else {
resultList.add(map);
}
}else {
resultList.add(map);
}
}
log.debug("SchedulingResults : [{}]",resultMap);
return resultMap;

@ -6,6 +6,7 @@ import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.workovertime.Save
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.jucailinkq.attendance.attendanceanalysis.service.WorkOverTimeService;
import com.engine.jucailinkq.attendance.enums.*;
import com.engine.jucailinkq.common.util.CommonUtil;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.Utils;
import com.engine.core.impl.Service;
@ -34,6 +35,8 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
//打卡卡点
List<ClockPointDTO> clcokInTimeDataList = (List<ClockPointDTO>)params.get("clcokInTimeData");
String userId = String.valueOf(params.get("userId"));
Map<String,Map<String,Object>> clcokInTimeMap = Maps.newHashMap();
Calendar calendar = Calendar.getInstance();
@ -63,27 +66,188 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
List<Map<String, Object>> overTimeHolidayList = Lists.newArrayList();
List<Map<String, Object>> overTimeResultList = Lists.newArrayList();
for (Map<String, Object> scheduleMap :scheduleResult){
List<Map<String,Object>> workTimeBeLateItems = getWorkTimeBeLateItems(scheduleMap,attendanceItems);
if (workTimeBeLateItems.size() == 0 || ClassSegmentTypeEnum.WORK_TIME.getKey().equals(scheduleMap.get("beforeClassSegment"))){
List<Map<String,Object>> workOvertimeItems = getWorkOvertimeItems(scheduleMap,attendanceItems,false);
if (workOvertimeItems.size() == 0 || ClassSegmentTypeEnum.WORK_TIME.getKey().equals(scheduleMap.get("beforeClassSegment"))){
continue;
}
String ktjbzdcfwlb = Util.null2String(workOvertimeItems.get(0).get("ktjbzdcfwlb"));
List<Map<String,Object>> scheduleMapList = Lists.newArrayList();
scheduleMap.put("overTimeItem",workOvertimeItems);
scheduleMapList.add(scheduleMap);
params.put("workTimeBeLateItems",workTimeBeLateItems);
params.put("workTimeBeLateItems",workOvertimeItems);
params.put("scheduleMap",scheduleMap);
//获得加班时长以及加班开始时间和结束时间
Map<String,Object> overTimeDuraionMap = commandExecutor.execute(new GetOvertimeDurationCmd(params));
String realityStartTime = overTimeDuraionMap.get("realityStartTime").toString();
String realityEndime = overTimeDuraionMap.get("realityEndime").toString();
//获得加班时长以及加班开始时间和结束时间
params.putAll(overTimeDuraionMap);
//获得加班项目
Map<String,Object> saveWorkOverTimeMap = commandExecutor.execute(new SaveWorkOverTimeCmd(params));
if (saveWorkOverTimeMap.get("workOverTimeItems") != null){
workOverTimeItemList.add((Map<String,Object>)saveWorkOverTimeMap.get("workOverTimeItems"));
}
if (saveWorkOverTimeMap.get("overTimeHoliday") != null){
overTimeHolidayList.add((Map<String,Object>)saveWorkOverTimeMap.get("overTimeHoliday"));
Map<String,Object> fatherSaveWorkOverTimeMap = commandExecutor.execute(new SaveWorkOverTimeCmd(params));
if (ktjbzdcfwlb.equals(CheckBoxEnum.CHECKED.getKey())){
//加班跨天时自动拆分为两笔
String cflbdsjd = Util.null2String(workOvertimeItems.get(0).get("cflbdsjd"));
String kssj = Utils.getkssjTime(scheduleMap,analysisDate);
String jssj = Utils.getjssjTime(scheduleMap,analysisDate);
String splitTime = null;
if (kssj.split(" ").equals(jssj.split(" "))){
String time = kssj.split(" ")[0] +" "+cflbdsjd;
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(time))<=0 &&
DateUtil.getTime(jssj).compareTo(DateUtil.getTime(time)) >=0){
splitTime = time;
}
}else {
String time = kssj.split(" ")[0] +" "+cflbdsjd;
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(time))<=0 &&
DateUtil.getTime(jssj).compareTo(DateUtil.getTime(time)) >=0){
splitTime = time;
}
if (splitTime == null){
time = jssj.split(" ")[0] +" "+cflbdsjd;
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(time))<=0 &&
DateUtil.getTime(jssj).compareTo(DateUtil.getTime(time)) >=0){
splitTime = time;
}
}
}
if (splitTime != null){
scheduleMapList.clear();
//需要分割
Map<String,Object> beforeschedule = Maps.newHashMap();
beforeschedule.putAll(scheduleMap);
beforeschedule.put("dtjssj",splitTime.split(" ")[1]);
beforeschedule.put("jsdk",CheckBoxEnum.UNCHECKED.getKey());
double jbsc = DateUtil.getBetWeenMinutes(realityStartTime,splitTime);
beforeschedule.put("edxss",String.format ("%.2f", jbsc/60));
scheduleMapList.add(beforeschedule);
beforeschedule.put("rqlx", CommonUtil.getRqlx(userId,scheduleMap.get("dtkssj").toString().split(" ")[0]));
if (beforeschedule.get("gsrq").equals(ClassBelongToEnum.NOWDAY.getKey())){
beforeschedule.put("overTimeItem",getWorkOvertimeItems(beforeschedule,attendanceItems,false));
}else {
beforeschedule.put("overTimeItem",getWorkOvertimeItems(beforeschedule,attendanceItems,true));
}
Map<String,Object> afterschedule = Maps.newHashMap();
afterschedule.putAll(scheduleMap);
afterschedule.put("dtkssj",splitTime.split(" ")[1]);
jbsc = DateUtil.getBetWeenMinutes(splitTime,realityEndime);
afterschedule.put("edxss",String.format ("%.2f", jbsc/60));
afterschedule.put("ksdk",CheckBoxEnum.UNCHECKED.getKey());
if (DateUtil.getTime(splitTime.split(" ")[0]).compareTo(DateUtil.getTime(analysisDate)) == 0){
afterschedule.put("gsrq",ClassBelongToEnum.NOWDAY.getKey());
}else if (DateUtil.getTime(splitTime.split(" ")[0]).compareTo(DateUtil.getTime(analysisDate)) < 0){
afterschedule.put("gsrq",ClassBelongToEnum.YESTERDAY.getKey());
}else if (DateUtil.getTime(splitTime.split(" ")[0]).compareTo(DateUtil.getTime(analysisDate)) > 0){
afterschedule.put("gsrq",ClassBelongToEnum.NEXTDAY.getKey());
}
afterschedule.put("rqlx",CommonUtil.getRqlx(userId,splitTime.split(" ")[0]));
if (afterschedule.get("gsrq").equals(ClassBelongToEnum.NOWDAY.getKey())){
afterschedule.put("overTimeItem",getWorkOvertimeItems(afterschedule,attendanceItems,false));
}else {
afterschedule.put("overTimeItem",getWorkOvertimeItems(afterschedule,attendanceItems,true));
}
scheduleMapList.add(afterschedule);
}
}
if (saveWorkOverTimeMap.get("overTimeResult") != null){
overTimeResultList.add((Map<String,Object>)saveWorkOverTimeMap.get("overTimeResult"));
if (scheduleMapList.size() > 1){
//加班需拆分
//提前打卡开始的时长计入加班
String tqdkjrjb = Util.null2String(workOvertimeItems.get(0).get("tqdkjrjb"));
double jbsc = 0;
if (CheckBoxEnum.CHECKED.getKey().equals(tqdkjrjb) && CheckBoxEnum.CHECKED.getKey().equals(scheduleMapList.get(0).get("ksdk"))) {
jbsc = DateUtil.getBetWeenMinutes(realityStartTime,scheduleMapList.get(0).get("dtjssj").toString());
}else {
jbsc = DateUtil.getBetWeenMinutes(Utils.getkssjTime(scheduleMapList.get(0),analysisDate),Utils.getjssjTime(scheduleMapList.get(0),analysisDate));
}
if (fatherSaveWorkOverTimeMap.get("workOverTimeItems") != null){
Map<String,Object> workOverTimeItems = (Map<String,Object>)fatherSaveWorkOverTimeMap.get("workOverTimeItems");
workOverTimeItemList.add(workOverTimeItems);
double alljbsc = (double)workOverTimeItems.get("jbsc");
double afterjbsc = alljbsc-jbsc;
if (jbsc > alljbsc){
jbsc = alljbsc;
}
if (afterjbsc < 0){
afterjbsc = 0;
}
Map<String,Object> beforeParam = Maps.newHashMap();
beforeParam.putAll(params);
beforeParam.put("workTimeBeLateItems",scheduleMapList.get(0).get("overTimeItem"));
beforeParam.put("scheduleMap",scheduleMapList.get(0));
beforeParam.put("realityStartTime",realityStartTime);
beforeParam.put("realityEndime",Utils.getjssjTime(scheduleMapList.get(0),analysisDate));
beforeParam.put("beSplit",true);
beforeParam.put("jbsc",jbsc);
Map<String,Object> beforeSaveWorkOverTimeMap = commandExecutor.execute(new SaveWorkOverTimeCmd(beforeParam));
if (beforeSaveWorkOverTimeMap.get("overTimeHoliday") != null){
overTimeHolidayList.add((Map<String,Object>)beforeSaveWorkOverTimeMap.get("overTimeHoliday"));
}
if (beforeSaveWorkOverTimeMap.get("overTimeResult") != null){
overTimeResultList.add((Map<String,Object>)beforeSaveWorkOverTimeMap.get("overTimeResult"));
}
Map<String,Object> afterParam = Maps.newHashMap();
afterParam.putAll(params);
afterParam.put("workTimeBeLateItems",scheduleMapList.get(1).get("overTimeItem"));
afterParam.put("scheduleMap",scheduleMapList.get(1));
afterParam.put("jbsc",afterjbsc);
afterParam.put("beSplit",true);
afterParam.put("realityStartTime",Utils.getkssjTime(scheduleMapList.get(1),analysisDate));
afterParam.put("realityEndime",realityEndime);
Map<String,Object> afterSaveWorkOverTimeMap = commandExecutor.execute(new SaveWorkOverTimeCmd(afterParam));
if (afterSaveWorkOverTimeMap.get("overTimeHoliday") != null){
overTimeHolidayList.add((Map<String,Object>)afterSaveWorkOverTimeMap.get("overTimeHoliday"));
}
if (afterSaveWorkOverTimeMap.get("overTimeResult") != null){
overTimeResultList.add((Map<String,Object>)afterSaveWorkOverTimeMap.get("overTimeResult"));
}
}
// //拆分开加班重新计算单独计算
// for (int i=0;i<scheduleMapList.size();i++){
// params.put("workTimeBeLateItems",scheduleMapList.get(i).get("overTimeItem"));
// params.put("scheduleMap",scheduleMapList.get(i));
// params.putAll(overTimeDuraionMap);
//
// //获得加班项目
// Map<String,Object> saveWorkOverTimeMap = commandExecutor.execute(new SaveWorkOverTimeCmd(params));
//
// if (saveWorkOverTimeMap.get("workOverTimeItems") != null){
// workOverTimeItemList.add((Map<String,Object>)saveWorkOverTimeMap.get("workOverTimeItems"));
// }
// if (saveWorkOverTimeMap.get("overTimeHoliday") != null){
// overTimeHolidayList.add((Map<String,Object>)saveWorkOverTimeMap.get("overTimeHoliday"));
// }
// if (saveWorkOverTimeMap.get("overTimeResult") != null){
// overTimeResultList.add((Map<String,Object>)saveWorkOverTimeMap.get("overTimeResult"));
// }
// }
}else {
if (fatherSaveWorkOverTimeMap.get("workOverTimeItems") != null){
workOverTimeItemList.add((Map<String,Object>)fatherSaveWorkOverTimeMap.get("workOverTimeItems"));
}
if (fatherSaveWorkOverTimeMap.get("overTimeHoliday") != null){
overTimeHolidayList.add((Map<String,Object>)fatherSaveWorkOverTimeMap.get("overTimeHoliday"));
}
if (fatherSaveWorkOverTimeMap.get("overTimeResult") != null){
overTimeResultList.add((Map<String,Object>)fatherSaveWorkOverTimeMap.get("overTimeResult"));
}
}
}
/**
@ -92,7 +256,7 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
List<Map<String,Object>> restOverTimeDuraion = Lists.newArrayList();
double jbsc = 0;
for (Map<String, Object> restOverTimeMap :restOverTimeList){
List<Map<String,Object>> workTimeBeLateItems = getWorkTimeBeLateItems(restOverTimeMap,attendanceItems);
List<Map<String,Object>> workTimeBeLateItems = getWorkOvertimeItems(restOverTimeMap,attendanceItems,false);
if (workTimeBeLateItems.size() == 0){
continue;
}
@ -129,7 +293,7 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
return resultMap;
}
public List<Map<String,Object>> getWorkTimeBeLateItems(Map<String, Object> scheduleMap,List<Map<String,Object>> attendanceItems){
public List<Map<String,Object>> getWorkOvertimeItems(Map<String, Object> scheduleMap,List<Map<String,Object>> attendanceItems,boolean findAgain){
String bdlx = Util.null2String(scheduleMap.get("bdlx"));
Map<String,Object> getWorkOverTimeParam = Maps.newHashMap();
@ -138,7 +302,7 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
getWorkOverTimeParam.put("workfor",Utils.getWorkFor(bdlx));
List<Map<String,Object>> workTimeBeLateItems = Lists.newArrayList();
if (Utils.ifOverTimeClassSegment(bdlx)){
if (ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx)){
if (ClassSegmentTypeEnum.OVERTIME_PLAN.getKey().equals(bdlx) && !findAgain){
getWorkOverTimeParam.put("workfor",WorkForTimeEnum.PLAN_WORK_OVERTIME.getKey());
workTimeBeLateItems = (List<Map<String,Object>>)scheduleMap.get("jblx");
}else {

@ -48,9 +48,9 @@ public class AttendanceanalysisAction {
try {
Map<String,Object> paramMap = ParamUtil.request2Map(request);
// Map<String,Object> paramMap = Maps.newHashMap();
// paramMap.put("startDate","2024-07-29");
// paramMap.put("endDate","2024-07-29");
// paramMap.put("userIds","88");
// paramMap.put("startDate","2024-07-26");
// paramMap.put("endDate","2024-07-26");
// paramMap.put("userIds","81");
String startDate = Util.null2String(paramMap.get("startDate"));
String startBeforeDate = DateUtil.beforeDay(startDate,2);

@ -345,6 +345,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
put("key","workcode");
put("fixed","left");
put("align","center");
put("context","编号");
put("display",numberDisplay);
}});
cloumns.add(new HashMap(){{
@ -355,6 +356,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
put("fixed","left");
put("align","center");
put("display",nameDisplay);
put("context","姓名");
}});
cloumns.add(new HashMap(){{
put("title","分部");
@ -364,6 +366,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
put("fixed","left");
put("align","center");
put("display",subcompanyDisplay);
put("context","分部");
}});
cloumns.add(new HashMap(){{
put("title","部门");
@ -373,6 +376,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
put("fixed","left");
put("align","center");
put("display",departmentDisplay);
put("context","部门");
}});
for (int i=0;i<monthDays;i++){
@ -396,6 +400,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
//周六
titleContext ="<div class=\"dh\" style=\"color: red;\"><div class=\"d\">"+(i+1)+"</div><div class=\"w\">六</div></div>";
}
map.put("context",i+1);
map.put("title",titleContext);
map.put("dataIndex",DateUtil.AfterDay(startTime,i));
map.put("key",i+1);

Loading…
Cancel
Save