门架汇总程序

master
杜磊 10 months ago
commit 937fb96cea

3
.idea/.gitignore vendored

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,21 @@
<component name="ArtifactManager">
<artifact type="jar" name="GANTRY_PASS_ALL:jar">
<output-path>$PROJECT_DIR$/out/artifacts/GANTRY_PASS_ALL_jar</output-path>
<root id="archive" name="GANTRY_PASS_ALL.jar">
<element id="module-output" name="GANTRY_PASS_ALL" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/ojdbc6.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/dom4j-2.0.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/HikariCP-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/fastjson-1.2.83.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/slf4j-api-1.7.25.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/slf4j-simple-1.7.25.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-tx-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-jcl-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-core-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-jdbc-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-beans-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" path-in-jar="/" />
</root>
</artifact>
</component>

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="lib">
<CLASSES>
<root url="file://$PROJECT_DIR$/src/lib" />
</CLASSES>
<JAVADOC />
<SOURCES />
<jarDirectory url="file://$PROJECT_DIR$/src/lib" recursive="false" />
</library>
</component>

@ -0,0 +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">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/GANTRY_PASS_ALL.iml" filepath="$PROJECT_DIR$/GANTRY_PASS_ALL.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,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="svn" />
</component>
</project>

@ -0,0 +1,563 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="GANTRY_PASS_ALL:jar" />
</artifacts-to-build>
</component>
<component name="ChangeListManager">
<list default="true" id="7d66f44e-e66a-4d87-8cad-4d6168a6de00" name="Default Changelist" comment="" />
<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="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>axlecount</find>
<find>vehi</find>
<find>VEHICLETYPE</find>
</findStrings>
</component>
<component name="ProjectFrameBounds" extendedState="7">
<option name="x" value="-11" />
<option name="y" value="-11" />
<option name="width" value="2582" />
<option name="height" value="1550" />
</component>
<component name="ProjectId" id="21u3F9wGrmuivsGDZVr9vRejz9h" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../GANTRY_MATCH" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.23103449" />
<property name="settings.editor.selected.configurable" value="editor.preferences.fonts.default" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\trkf-java\GANTRY_PASS_ALL\src\lib" />
<recent name="E:\trkf-java\GANTRY_PASS_ALL\src\lib" />
</key>
</component>
<component name="RunManager" selected="Application.GMAIN_TEST">
<configuration name="GAMIN" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GAMIN" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GMAIN_TEST" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GMAIN_TEST" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GPA_MAIN" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GPA_MAIN" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.33" ALTERNATIVE_JRE_ENABLED="false">
<option name="UPDATING_POLICY" value="restart-server" />
<deployment />
<server-settings>
<option name="BASE_DIRECTORY_NAME" value="_GANTRY_PASS_ALL" />
</server-settings>
<predefined_log_file enabled="true" id="Tomcat" />
<predefined_log_file enabled="true" id="Tomcat Catalina" />
<predefined_log_file id="Tomcat Manager" />
<predefined_log_file id="Tomcat Host Manager" />
<predefined_log_file id="Tomcat Localhost Access" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="1808" />
</RunnerSettings>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<list>
<item itemvalue="Application.GAMIN" />
<item itemvalue="Application.GMAIN_TEST" />
<item itemvalue="Application.GPA_MAIN" />
</list>
<recent_temporary>
<list>
<item itemvalue="Application.GMAIN_TEST" />
<item itemvalue="Application.GAMIN" />
<item itemvalue="Application.GPA_MAIN" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="7d66f44e-e66a-4d87-8cad-4d6168a6de00" name="Default Changelist" comment="" />
<created>1638777038918</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1638777038918</updated>
<workItem from="1640508428515" duration="1855000" />
<workItem from="1640833236741" duration="60000" />
<workItem from="1641886125252" duration="1321000" />
<workItem from="1641968513174" duration="1223000" />
<workItem from="1642566479500" duration="2668000" />
<workItem from="1645168523384" duration="926000" />
<workItem from="1645411909977" duration="4143000" />
<workItem from="1645492485004" duration="2323000" />
<workItem from="1645680948060" duration="2891000" />
<workItem from="1646015579988" duration="6866000" />
<workItem from="1646096405338" duration="610000" />
<workItem from="1646098082109" duration="1761000" />
<workItem from="1646184973668" duration="53000" />
<workItem from="1646203382206" duration="3950000" />
<workItem from="1646270518464" duration="1656000" />
<workItem from="1646363428531" duration="1205000" />
<workItem from="1646878784393" duration="6808000" />
<workItem from="1646960140570" duration="1805000" />
<workItem from="1647225665260" duration="1812000" />
<workItem from="1647310167360" duration="1585000" />
<workItem from="1647397536468" duration="6156000" />
<workItem from="1647491326374" duration="2162000" />
<workItem from="1647566106279" duration="1840000" />
<workItem from="1647827020713" duration="27942000" />
<workItem from="1648263514254" duration="1862000" />
<workItem from="1648433603236" duration="798000" />
<workItem from="1648535077068" duration="3882000" />
<workItem from="1648783607088" duration="3297000" />
<workItem from="1648891611618" duration="905000" />
<workItem from="1649212203189" duration="2918000" />
<workItem from="1649476191818" duration="2917000" />
<workItem from="1649811107367" duration="2396000" />
<workItem from="1650072692766" duration="7560000" />
<workItem from="1650251681066" duration="7483000" />
<workItem from="1650360035802" duration="12299000" />
<workItem from="1651040744961" duration="1190000" />
<workItem from="1651895934112" duration="21749000" />
<workItem from="1652491329405" duration="5930000" />
<workItem from="1652857323527" duration="595000" />
<workItem from="1652858062376" duration="2397000" />
<workItem from="1653183221357" duration="4100000" />
<workItem from="1653373370962" duration="2553000" />
<workItem from="1653466506686" duration="1705000" />
<workItem from="1653483407573" duration="318000" />
<workItem from="1653526520198" duration="2877000" />
<workItem from="1653613466857" duration="2454000" />
<workItem from="1653789187496" duration="1195000" />
<workItem from="1653903966603" duration="63000" />
<workItem from="1653915078245" duration="1651000" />
<workItem from="1653986717567" duration="607000" />
<workItem from="1654000415905" duration="541000" />
<workItem from="1654005843264" duration="29000" />
<workItem from="1654590006926" duration="1261000" />
<workItem from="1654652194895" duration="2732000" />
<workItem from="1654739134008" duration="1281000" />
<workItem from="1655693337535" duration="1663000" />
<workItem from="1655885459736" duration="1278000" />
<workItem from="1655967696058" duration="2273000" />
<workItem from="1656380714817" duration="7000" />
<workItem from="1656381141692" duration="2210000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="WindowStateProjectService">
<state x="630" y="387" key="#Tomcat_Server" timestamp="1654000459896">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="630" y="387" key="#Tomcat_Server/0.0.1707.1019@0.0.1707.1019" timestamp="1654000459896" />
<state x="309" y="165" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1654000486771">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="309" y="165" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1707.1019@0.0.1707.1019" timestamp="1654000486771" />
<state x="527" y="215" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1653376517196">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="527" y="215" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653376517196" />
<state x="578" y="148" key="#com.intellij.j2ee.appServerIntegrations.ApplicationServersConfigurable" timestamp="1654000485636">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="578" y="148" key="#com.intellij.j2ee.appServerIntegrations.ApplicationServersConfigurable/0.0.1707.1019@0.0.1707.1019" timestamp="1654000485636" />
<state x="662" y="383" key="#com.intellij.ws.actions.GenerateJavaFromWsdlAction$1" timestamp="1650607051037">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="662" y="383" key="#com.intellij.ws.actions.GenerateJavaFromWsdlAction$1/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1650607051037" />
<state x="707" y="422" width="417" height="286" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog" timestamp="1652686866690">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="707" y="422" width="417" height="286" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1652686866690" />
<state x="3355" y="427" width="330" height="234" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652341274285" />
<state width="554" height="577" key="DebuggerActiveHint" timestamp="1653358995499">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="498" height="462" key="DebuggerActiveHint/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648535483848" />
<state width="498" height="466" key="DebuggerActiveHint/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433771274" />
<state width="554" height="577" key="DebuggerActiveHint/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358995499" />
<state width="624" height="585" key="DebuggerActiveHint/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340686258" />
<state width="554" height="577" key="DebuggerActiveHint/0.0.1707.1019@0.0.1707.1019" timestamp="1648783930570" />
<state x="610" y="189" key="FileChooserDialogImpl" timestamp="1656382787815">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="610" y="189" key="FileChooserDialogImpl/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656382787815" />
<state x="610" y="189" key="FileChooserDialogImpl/0.0.1707.1019@0.0.1707.1019" timestamp="1654000656434" />
<state width="1663" height="326" key="GridCell.Tab.0.bottom" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.bottom/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916502" />
<state width="1493" height="178" key="GridCell.Tab.0.bottom/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.bottom/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.bottom/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.bottom/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.0.center" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.center/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916501" />
<state width="1493" height="178" key="GridCell.Tab.0.center/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.center/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.center/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.center/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.0.left" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.left/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916501" />
<state width="1493" height="178" key="GridCell.Tab.0.left/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.left/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.left/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.left/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.0.right" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.right/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916501" />
<state width="1493" height="178" key="GridCell.Tab.0.right/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.right/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.right/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.right/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.bottom" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.bottom/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920006" />
<state width="1493" height="178" key="GridCell.Tab.1.bottom/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.bottom/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.bottom/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.bottom/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.center" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.center/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920005" />
<state width="1493" height="178" key="GridCell.Tab.1.center/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.center/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.center/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.center/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.left" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.left/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920005" />
<state width="1493" height="178" key="GridCell.Tab.1.left/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.left/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.left/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.left/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.right" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.right/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920006" />
<state width="1493" height="178" key="GridCell.Tab.1.right/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.right/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.right/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.right/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state x="277" y="0" key="SettingsEditor" timestamp="1656381219498">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="277" y="0" key="SettingsEditor/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656381219498" />
<state x="277" y="0" key="SettingsEditor/0.0.1707.1019@0.0.1707.1019" timestamp="1648783781051" />
<state x="373" y="145" key="new project wizard" timestamp="1654000650742">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="198" y="27" key="new project wizard/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1652231521669" />
<state x="373" y="145" key="new project wizard/0.0.1707.1019@0.0.1707.1019" timestamp="1654000650742" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>20</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/startGPA.java</url>
<line>109</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>183</line>
<option name="timeStamp" value="7" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>285</line>
<option name="timeStamp" value="9" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>340</line>
<option name="timeStamp" value="10" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>735</line>
<option name="timeStamp" value="12" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>738</line>
<option name="timeStamp" value="13" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>157</line>
<option name="timeStamp" value="14" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>157</line>
<option name="timeStamp" value="15" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>384</line>
<option name="timeStamp" value="16" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>210</line>
<option name="timeStamp" value="17" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>124</line>
<option name="timeStamp" value="18" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1216</line>
<option name="timeStamp" value="19" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>200</line>
<option name="timeStamp" value="20" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>495</line>
<option name="timeStamp" value="24" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1645</line>
<option name="timeStamp" value="25" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1739</line>
<option name="timeStamp" value="26" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1709</line>
<option name="timeStamp" value="27" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GetGantryStat.java</url>
<line>22</line>
<option name="timeStamp" value="28" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GMAIN_TEST.java</url>
<line>34</line>
<option name="timeStamp" value="29" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1895</line>
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
<watch expression="thread.isAlive()" />
<watch expression="sb_json" />
<watch expression="temp_json" language="JAVA" />
<watch expression="result_json" />
<watch expression="map.get(&quot;CARDFEESUMAFTER&quot;).toString()" />
<watch expression="isListLostGantry(list)" />
<watch expression="sb_json.toString()" />
</configuration>
</watches-manager>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<last-edited>GANTRY_PASS_ALL:jar</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.23103449" />
<option value="0.5" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>GANTRY_PASS_ALL</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.23103449" />
<option value="0.6" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>lib</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

@ -0,0 +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">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,57 @@
package com.trkf.feemoduleservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.Action;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.9-b130926.1035
* Generated source version: 2.2
*
*/
@WebService(name = "FeeModuleService", targetNamespace = "http://FeeModuleService.trkf.com/")
@XmlSeeAlso({
ObjectFactory.class
})
public interface FeeModuleService {
/**
*
* @param arg0
* @return
* returns java.lang.String
*/
@WebMethod
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "getFee", targetNamespace = "http://FeeModuleService.trkf.com/", className = "com.trkf.feemoduleservice.GetFee")
@ResponseWrapper(localName = "getFeeResponse", targetNamespace = "http://FeeModuleService.trkf.com/", className = "com.trkf.feemoduleservice.GetFeeResponse")
@Action(input = "http://FeeModuleService.trkf.com/FeeModuleService/getFeeRequest", output = "http://FeeModuleService.trkf.com/FeeModuleService/getFeeResponse")
public String getFee(
@WebParam(name = "arg0", targetNamespace = "")
String arg0);
/**
*
* @param arg0
* @return
* returns java.lang.String
*/
@WebMethod(operationName = "GetStaFee")
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "GetStaFee", targetNamespace = "http://FeeModuleService.trkf.com/", className = "com.trkf.feemoduleservice.GetStaFee")
@ResponseWrapper(localName = "GetStaFeeResponse", targetNamespace = "http://FeeModuleService.trkf.com/", className = "com.trkf.feemoduleservice.GetStaFeeResponse")
@Action(input = "http://FeeModuleService.trkf.com/FeeModuleService/GetStaFeeRequest", output = "http://FeeModuleService.trkf.com/FeeModuleService/GetStaFeeResponse")
public String getStaFee(
@WebParam(name = "arg0", targetNamespace = "")
String arg0);
}

@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="lib">
<CLASSES>
<root url="file://$PROJECT_DIR$/src/lib" />
</CLASSES>
<JAVADOC />
<SOURCES />
<jarDirectory url="file://$PROJECT_DIR$/src/lib" recursive="false" />
</library>
</component>

@ -0,0 +1,3 @@
[2022-06-20 10:52:23.946] DL 日志
[2022-06-20 10:52:23.946] 1插入汇总结果用时25,当前线程共1数据,处理至1条数据还剩2,PASSID011301200123000531805520220609093902,出口匹配类型:省内出口,出口ID:G006515003001320010,门架数据自动匹配完成,门架数据自动审计完成
[2022-06-20 10:55:20.394] 1插入汇总结果用时19,当前线程共1数据,处理至1条数据还剩2,PASSID011301200123000531805520220609093902,出口匹配类型:省内出口,出口ID:G006515003001320010,门架数据自动匹配完成,门架数据自动审计完成

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

@ -0,0 +1,62 @@
package com.trkf.feemoduleservice;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>getFeeResponse complex type的 Java 类。
*
* <p>以下模式片段指定包含在此类中的预期内容。
*
* <pre>
* &lt;complexType name="getFeeResponse">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "getFeeResponse", propOrder = {
"_return"
})
public class GetFeeResponse {
@XmlElement(name = "return")
protected String _return;
/**
* 获取return属性的值。
*
* @return
* possible object is
* {@link String }
*
*/
public String getReturn() {
return _return;
}
/**
* 设置return属性的值。
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setReturn(String value) {
this._return = value;
}
}

@ -0,0 +1,2 @@
[2022-06-24 10:57:04.164] DL 日志
[2022-06-24 10:57:04.164] 1passid查询用时10,查询结果1条

@ -0,0 +1,18 @@
url=jdbc:oracle:oci:@//10.15.100.5:1521/torcl
#这个可以缺省的会根据url自动识别
driverClassName=oracle.jdbc.driver.OracleDriver
username=nmgmpayadmin
password=nmgh90[]
##初始连接数默认0
initialSize=16
#最大连接数默认8
maxActive=32
#最小闲置数
minIdle=1
#获取连接的最大等待时间,单位毫秒
maxWait=10000
#缓存PreparedStatement默认false
poolPreparedStatements=true
#缓存PreparedStatement的最大数量默认-1不缓存。大于0时会自动开启缓存PreparedStatement所以可以省略上一句设置
maxOpenPreparedStatements=20

@ -0,0 +1,133 @@
package GPA;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class LogClass {
private static String log_path = new LogClass().getBasePath()+File.separator+"LogFile"+File.separator+new SimpleDateFormat("yyyy-MM-dd").format(new Date()); // 日志保存路径
private static String log_name = "gantry_pass_all_log";// 日志文件名(前部分)
private static boolean console_out = true;// 日志是否输出到控制台
/*
* yyyy-MM: 每个月更新一个log日志 yyyy-ww: 每个星期更新一个log日志 yyyy-MM-dd: 每天更新一个log日志
* yyyy-MM-dd-a: 每天的午夜和正午更新一个log日志 yyyy-MM-dd-HH: 每小时更新一个log日志
* yyyy-MM-dd-HH-mm: 每分钟更新一个log日志
*/
private static String update_hz = "yyyy-MM-dd-HH";// 更新日志的频率,每小时更新一次
private static long max_log_size = 1024 * 1024 * 10;// 单个日志文件最大大小 10M
public static void debug(String msg) {
runWrite(msg, log_path, log_name + "_debug");
}
public static void info(String msg) {
runWrite(msg, log_path, log_name + "_info");
}
public static void error(String msg) {
runWrite(msg, log_path, log_name + "_error");
}
public static void delete(String msg) {
runWrite(msg, log_path, log_name + "_delete");
}
public static void test(String msg) {
runWrite(msg, log_path, log_name + "_test");
}
public static void exception(Exception e) {
String errorMessage = e.getMessage() + "";
StackTraceElement[] eArray = e.getCause().getStackTrace();
for (int i = 0; i < eArray.length; i++) {
String className = e.getCause().getStackTrace()[i].getClassName();
String MethodName = e.getCause().getStackTrace()[i].getMethodName();
int LineNumber = e.getCause().getStackTrace()[i].getLineNumber();
errorMessage = errorMessage + "\n\t---" + className + "." + MethodName + ",\tline:" + LineNumber;
}
logResult(errorMessage, log_path, log_name + "_exception");
}
/**
* 日志根目录
*
* @return
*/
public String getBasePath() {
//String s = Thread.currentThread().getContextClassLoader().getResource("").getPath();
String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
if (System.getProperty("os.name").contains("dows")) {
path = path.substring(1, path.length());
}
if (path.contains("jar")) {
path = path.substring(0, path.lastIndexOf("."));
return path.substring(0, path.lastIndexOf("/"));
}
return path;
}
/**
* 写日志
*
* @param sWord
* 要写入日志里的文本内容
*/
public static void logResult(String sWord) {
runWrite(sWord, log_path, log_name);
}
public static void logResult(String sWord, String logPath, String logName) {
logPath=new LogClass().getBasePath()+File.separator+"LogFile"+File.separator+new SimpleDateFormat("yyyy-MM-dd").format(new Date());
FileWriter writer = null;
Lock lck=new ReentrantLock();
lck.lock();
try {
File dir = new File(logPath);
if (!dir.exists()) {
dir.mkdirs();
}
String dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date());
File f = new File(logPath+File.separator + logName + "_" + new SimpleDateFormat(update_hz).format(new Date()) + ".txt");
if (!f.exists()) {
f.createNewFile();
sWord = "DL 日志\r\n" + "[" + dt + "]\t" + sWord;
} else {
long logSize = f.length();
// 文件大小超过10M备份
if (logSize >= max_log_size) {
String backLogName = logPath + logName
+ new SimpleDateFormat("_yyyy-MM-dd.HHmmss.SSS").format(new Date()) + ".txt";
f.renameTo(new File(backLogName));
}
}
writer = new FileWriter(f, true);
writer.write("[" + dt + "]\t" + sWord + "\r\n");
if (console_out) {
System.out.println("[" + dt + "]\t" + sWord);
}
} catch (Exception e) {
System.out.println("记录日志异常:" + e.toString());
lck.unlock();
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
lck.unlock();
}
}
public static void runWrite(final String sWord,final String logPath,final String logName) {
new Thread() {
public void run() {
logResult(sWord, logPath, logName);
}
}.start();;
}
}

@ -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,172 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.List;
public class GAMIN {
public static void main(String[] args) throws Exception {
List<Thread> list=new startGPA().startUp();
}
private List<Thread> Main_void(String dbType) throws Exception {
boolean flag=true;
List<Thread> stop_list=new ArrayList<>();
List<startGPA.State> state_list=new ArrayList<>();
boolean runAble=true;
startGPA s=new startGPA();
stop_list.clear();
try {
JdbcTemplate jdbcTemplate=new JdbcTemplate(new DBUtil().Hikar_DataSource());
List list_PARTICIPANT = CommonHelp.getListBySql("select * from TB_PARTICIPANT",jdbcTemplate);
List list_LINE_TABLE=CommonHelp.getListBySql("select LINENAME,GBLINEID from line_table",jdbcTemplate);
List list_FEEUNIT_TABLE=CommonHelp.getListBySql("select ID,NAME FROM FEEUNIT_TABLE",jdbcTemplate);
List list_GANTRY_TABLE=CommonHelp.getListBySql("select * from gantry_table",jdbcTemplate);
int GPA_THREAD_COUNT_1=7;
//正常数据处理线程4个
if (dbType.equals("1")) {//oracle
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and ora_hash(passid,"+(GPA_THREAD_COUNT_1-1)+")="+i;
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
} else if (dbType.equals("2")) {//DM
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and DM_HASH(passid)%"+GPA_THREAD_COUNT_1+"="+i+" and rownum<=1500";
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//超时数据处理线程3个
if (dbType.equals("1")) {//oracle
//超时第一种情况--有出口但是累计金额不相等的
String sql2_1_1 = "select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
List<String> listTemp=new ArrayList<>();
listTemp.add(sql2_1_1);
listTemp.add(sql2_2_1);
listTemp.add(sql2_3_1);
for (int i = 0; i < listTemp.size(); i++) {
Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
} else if (dbType.equals("2")) {//DM
//超时第一种情况--有出口但是累计金额不相等的技巧口诀图解
String sql2_1_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
List<String> listTemp=new ArrayList<>();
listTemp.add(sql2_1_1);
listTemp.add(sql2_2_1);
listTemp.add(sql2_3_1);
for (int i = 0; i < listTemp.size(); i++) {
Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//二次数据上传处理线程1个
String sql3_1 = "";
if (dbType.equals("1")) {//oracle
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1=new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread3_1.start();
stop_list.add(thread3_1);
startGPA.State state3_1=new startGPA.State();
state3_1.ThreadId=thread3_1.getId();
state3_1.StateUpdateTime=System.currentTimeMillis();
state_list.add(state3_1);
} else if (dbType.equals("2")) {//DM
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1=new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);;
thread3_1.start();
}
//删除中间表数据线程,1个
if (dbType.equals("1")) {
String sql4_1 = "delete gantry_pass_center where ROUND(TO_NUMBER(sysdate - handletime))>25";
deleteCenter deleteC=new deleteCenter(jdbcTemplate,sql4_1,runAble,s);
Thread thread=new Thread(deleteC);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
//预分账线程7个
int THREAD_GANTRY_STAT_COUNT=7;
for (int i = 0; i < THREAD_GANTRY_STAT_COUNT; i++) {
String sql="select * from gantry_pass_stat_temp where ora_hash(tradeid,"+(THREAD_GANTRY_STAT_COUNT-1)+")="+i+" and rownum<=1000";
GetGantryStat getGantryStat=new GetGantryStat(jdbcTemplate,sql,runAble,s);
Thread thread=new Thread(getGantryStat);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
catch (Exception e){
flag=false;
e.printStackTrace();
LogClass.debug(e.toString());
}
finally {
return stop_list;
}
}
}

@ -0,0 +1,95 @@
package com.trkf.feemoduleservice;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.WebServiceFeature;
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.9-b130926.1035
* Generated source version: 2.2
*
*/
@WebServiceClient(name = "FeeModuleServiceService", targetNamespace = "http://FeeModuleService.trkf.com/", wsdlLocation = "http://10.15.99.78:8081/FeeModuleService/FeeModuleService?wsdl")
public class FeeModuleServiceService
extends Service
{
private final static URL FEEMODULESERVICESERVICE_WSDL_LOCATION;
private final static WebServiceException FEEMODULESERVICESERVICE_EXCEPTION;
private final static QName FEEMODULESERVICESERVICE_QNAME = new QName("http://FeeModuleService.trkf.com/", "FeeModuleServiceService");
static {
URL url = null;
WebServiceException e = null;
try {
url = new URL("http://10.15.99.78:8080/FeeModuleService/FeeModuleService?wsdl");
//url = new URL("http://10.15.99.78:8081/FeeModuleService/FeeModuleService?wsdl");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}
FEEMODULESERVICESERVICE_WSDL_LOCATION = url;
FEEMODULESERVICESERVICE_EXCEPTION = e;
}
public FeeModuleServiceService() {
super(__getWsdlLocation(), FEEMODULESERVICESERVICE_QNAME);
}
public FeeModuleServiceService(WebServiceFeature... features) {
super(__getWsdlLocation(), FEEMODULESERVICESERVICE_QNAME, features);
}
public FeeModuleServiceService(URL wsdlLocation) {
super(wsdlLocation, FEEMODULESERVICESERVICE_QNAME);
}
public FeeModuleServiceService(URL wsdlLocation, WebServiceFeature... features) {
super(wsdlLocation, FEEMODULESERVICESERVICE_QNAME, features);
}
public FeeModuleServiceService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
public FeeModuleServiceService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) {
super(wsdlLocation, serviceName, features);
}
/**
*
* @return
* returns FeeModuleService
*/
@WebEndpoint(name = "FeeModuleServicePort")
public FeeModuleService getFeeModuleServicePort() {
return super.getPort(new QName("http://FeeModuleService.trkf.com/", "FeeModuleServicePort"), FeeModuleService.class);
}
/**
*
* @param features
* A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
* @return
* returns FeeModuleService
*/
@WebEndpoint(name = "FeeModuleServicePort")
public FeeModuleService getFeeModuleServicePort(WebServiceFeature... features) {
return super.getPort(new QName("http://FeeModuleService.trkf.com/", "FeeModuleServicePort"), FeeModuleService.class, features);
}
private static URL __getWsdlLocation() {
if (FEEMODULESERVICESERVICE_EXCEPTION!= null) {
throw FEEMODULESERVICESERVICE_EXCEPTION;
}
return FEEMODULESERVICESERVICE_WSDL_LOCATION;
}
}

@ -0,0 +1,140 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
public class GetGantryStat implements Runnable{
private JdbcTemplate jdbcTemplate;
private String sql;
private boolean runAble;
private startGPA s;
public GetGantryStat(JdbcTemplate jdbcTemplate,String sql,boolean runAble,startGPA s){
this.jdbcTemplate=jdbcTemplate;
this.sql=sql;
this.runAble=runAble;
this.s=s;
}
@Override
public void run() {
while (runAble){
try {
s.UpdateState(Thread.currentThread().getId());
List list=jdbcTemplate.queryForList(sql);
String tollIntervalsId="";
String stano="";
String roadno="";
StringBuilder delete_tradeid=new StringBuilder();
if (list.size()>0){
for (int i = 0; i < list.size(); i++) {
try {
Map map=(Map) list.get(i);
String[] tollIntervalsId_temp=map.get("TOLLINTERVALID")==null?null:map.get("TOLLINTERVALID").toString().split("\\|");
String[] feeGroup_temp=map.get("FEEGROUP")==null?null:map.get("FEEGROUP").toString().split("\\|");
String[] payfeeGroup_temp=map.get("PAYFEEGROUP")==null?null:map.get("PAYFEEGROUP").toString().split("\\|");
String[] specialtype_temp=null;
if (map.get("SPECIALTYPE")!=null){
if (map.get("SPECIALTYPE").toString().replace(" ","").length()>0){
specialtype_temp=map.get("SPECIALTYPE").toString().split("\\|");
}
}
String is_have_gantry_trade_sql="SELECT * FROM gantry_trade_mass where gantryid='" +map.get("GANTRYID").toString() + "' and classdate=TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " +map.get("MEDIATYPE") + " AND VEHICLETYPE = " +map.get("FEEVEHICLETYPE");
List list_trade_ishave=jdbcTemplate.queryForList(is_have_gantry_trade_sql);
String boundarytype_sql = "select boundarytype from gantry_table where id='" + map.get("GANTRYID").toString() + "'";
List boundary=jdbcTemplate.queryForList(boundarytype_sql);
if (boundary.size()>0){
int boundarytype=Integer.valueOf(((Map) boundary.get(0)).get("BOUNDARYTYPE").toString());
if (list_trade_ishave.size()>0){
int feesuccnum=0;
int feefailenum=0;
if (map.get("FEECALCRESULT").toString().equals("0") && map.get("TRADERESULT").toString().equals("0")){
feesuccnum = 1;
}
else {
feefailenum = 1;
}
// JSONObject temp=new JSONObject(((Map) list_trade_ishave.get(0)).get("SPECIALTYPE").toString());
// if (specialtype_temp!=null){
// for (int j = 0; j < specialtype_temp.length; j++) {
// String special_value="";
// if (specil_list.contains(Integer.valueOf(specialtype_temp[j]))){
//
// }
// }
// }
String update_gantry_trade = "update gantry_trade_mass set boundarytype = " + boundarytype + ", feesuccnum = feesuccnum+" + feesuccnum + ", feefailenum = feefailenum+" + feefailenum + ", specialtype = '' where gantryid = '" + map.get("GANTRYID").toString() + "' and classdate = TO_DATE('" +map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') and mediatype = " + map.get("MEDIATYPE") + " and vehicletype = " + map.get("FEEVEHICLETYPE");
jdbcTemplate.update(update_gantry_trade);
}
else {
String insert_gantry_trade= "insert into gantry_trade_mass (gantryid, classdate, mediatype, vehicletype, boundarytype, feesuccnum, feefailenum, specialtype, feelostnum) values ('" +map.get("GANTRYID").toString() + "', TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd'), " +map.get("MEDIATYPE") + ", " + map.get("FEEVEHICLETYPE") + ", " + boundarytype + ", 0, 0, '{}', 0) ";
jdbcTemplate.update(insert_gantry_trade);
}
if (tollIntervalsId_temp!=null && feeGroup_temp!=null && payfeeGroup_temp!=null){
if (tollIntervalsId_temp.length== feeGroup_temp.length && feeGroup_temp.length==payfeeGroup_temp.length){
for (int j = 0; j < tollIntervalsId_temp.length; j++) {
if (tollIntervalsId_temp[j].length()>=16){
tollIntervalsId=tollIntervalsId_temp[j].substring(0,16);
String stano_roadno_sql = "select ostano,oroadno from feeunit_table where id='" + tollIntervalsId + "'";
List stano_roadno_list=jdbcTemplate.queryForList(stano_roadno_sql);
if (stano_roadno_list.size()>0){
stano=((Map)stano_roadno_list.get(0)).get("OSTANO").toString();
roadno=((Map)stano_roadno_list.get(0)).get("OROADNO").toString();
}
else {
stano="0";
roadno="0";
}
String is_have_sql = "SELECT 1 FROM DUAL WHERE EXISTS (SELECT * FROM gantry_stat where FEEUNITID='" + tollIntervalsId + "' and classdate=TO_DATE('" +map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " +map.get("MEDIATYPE") + " AND VEHTYPE = " +map.get("FEEVEHICLETYPE") + " AND ROADNO = " + roadno + " and STANO=" + stano + ")";
List list_ishave=jdbcTemplate.queryForList(is_have_sql);
if (list_ishave.size()>0){
String update_sql = "UPDATE GANTRY_STAT SET VEHCOUNT = VEHCOUNT + 1, CASH = TO_NUMBER(CASH) +TO_NUMBER(" + (payfeeGroup_temp[j].replace(" ","").length() == 0 ? "0" : payfeeGroup_temp[j]) + "), INCASH = TO_NUMBER(INCASH) +TO_NUMBER(" + (feeGroup_temp[j].replace(" ","").length() == 0 ? "0" : feeGroup_temp[j]) + ") where FEEUNITID='" + tollIntervalsId + "' and classdate=TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " + map.get("MEDIATYPE") + " AND VEHTYPE = " + map.get("FEEVEHICLETYPE") + " AND ROADNO = " + roadno;
jdbcTemplate.update(update_sql);
}
else {
String insert_sql = "INSERT INTO GANTRY_STAT(ROADNO,STANO,CLASSDATE,FEEUNITID,MEDIATYPE, VEHTYPE,VEHCLASS,SPECIALTYPE,AXLECOUNT,VEHCOUNT,TRADERESULT,HOLIDAYSTATE,VALIDSTATUS,CASH,INCASH,FEESUMLOCALAFTER,BACKUP1,BACKUP2,BACKUP3,BACKUP4,DATEMARK) VALUES(" + roadno + ", " + stano + ", TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd'), '" + tollIntervalsId + "', " + map.get("MEDIATYPE") + "," + map.get("FEEVEHICLETYPE") + ", 0, 0, 2, 1, 0, 0, 0," + (payfeeGroup_temp[j].replace(" ","").length() == 0 ? "0" : payfeeGroup_temp[j]) + ", " + (feeGroup_temp[j].replace(" ","").length() == 0 ? "0" : feeGroup_temp[j]) + ", 0, 0, 0, '0','0', SYSDATE)";
jdbcTemplate.update(insert_sql);
}
}
}
}
}
String delete_sql="delete gantry_pass_stat_temp where tradeid='" +map.get("TRADEID") + "' ";
jdbcTemplate.update(delete_sql);
}
else {
LogClass.error("预分账错误日志门架ID不存在"+((Map) list.get(i)).get("TRADEID"));
}
}
catch (Exception e){
LogClass.error("预分账错误日志:"+e.toString()+","+((Map) list.get(i)).get("TRADEID"));
}
}
}
Thread.sleep(1000*30);
}
catch (Exception e){
LogClass.error("预拆分错误"+e.toString());
}
}
}
}

@ -0,0 +1,341 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.text.SimpleDateFormat;
import java.util.*;
public class startGPA {
private final int MAX_ERROR_MSG=1000;
private List<Thread> stop_list;
private List<State> state_list;
private List<String> ErrorMsg_list;
{
stop_list=new ArrayList<>();
state_list=new ArrayList<>();
ErrorMsg_list=new ArrayList<>();
}
public static class State{
long ThreadId;
long StateUpdateTime;
}
public synchronized void UpdateState(long ThreadId){
for (int i = 0; i < state_list.size(); i++) {
State s=state_list.get(i);
if (s.ThreadId==ThreadId){
s.StateUpdateTime=System.currentTimeMillis();
state_list.set(i,s);
}
}
}
public synchronized Date GetRunState(){
long minTime=0;
for (int i = 0; i < state_list.size(); i++) {
State s=state_list.get(i);
if (s.StateUpdateTime < minTime || minTime==0){
minTime=s.StateUpdateTime;
}
}
return new Date(minTime);
}
public void WriteLog(String info){
}
public synchronized boolean init(String jarPath){
WriteLog("软件启动");
return true;
}
boolean runAble=true;
public synchronized void stop(){
runAble=false;
for (int i = 0; i < stop_list.size(); i++) {
Thread thread=stop_list.get(i);
try {
LogClass.debug("开始停止"+thread);
thread.join(1000);
LogClass.debug("已停止"+thread);
}
catch (Exception e){
WriteLog("停止线程错误:"+e.getMessage());
LogClass.debug("程序停止异常"+e.getMessage());
}
}
stop_list.clear();
state_list.clear();
WriteLog("线程停止");
}
public synchronized String[] GetErrorLog(){
int MsgCount=ErrorMsg_list.size();
if (MsgCount>MAX_ERROR_MSG){
MsgCount=MAX_ERROR_MSG;
}
String[] ErrorLogs=new String[MsgCount];
for (int i = 0; i < MsgCount; i++) {
ErrorLogs[i]=ErrorMsg_list.get(i);
}
for (int i = 0; i < MsgCount; i++) {
ErrorMsg_list.remove(0);
}
return ErrorLogs;
}
public synchronized void SetErrorLog(int Type,int MsgCode,String info){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String ErrorInfo="{\"TYPE\":"+String.valueOf(Type)+",\"MSGCODE\":"+String.valueOf(MsgCode)+",\"MSG\":"+String.valueOf(info)+",\"DT\":\""+sdf.format(new Date())+"\"}";
ErrorMsg_list.add(ErrorInfo);
while (ErrorMsg_list.size()>MAX_ERROR_MSG){
ErrorMsg_list.remove(0);
}
}
public synchronized void exit(){
WriteLog("软件退出");
}
public synchronized List<Thread> startUp() throws Exception {
return Main_void("1");
}
private List<Thread> Main_voidTest(String dbType) throws Exception {
try {
JdbcTemplate jdbcTemplate=new JdbcTemplate(new DBUtil().Hikar_DataSource());
String sql4_1 = "delete gantry_pass_center where ROUND(TO_NUMBER(sysdate - handletime))>25";
deleteCenter deleteC=new deleteCenter(jdbcTemplate,sql4_1,runAble,this);
Thread thread=new Thread(deleteC);
thread.start();//true
stop_list.add(thread);//false
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
for (int i = 0; i < stop_list.size(); i++) {
LogClass.error("线程ID:"+stop_list.get(i).getId()+"线程状态:"+stop_list.get(i).isAlive());
}
}
catch (Exception e){
e.printStackTrace();
}
finally {
return stop_list;
}
}
private JdbcTemplate jdbcTemplate;
{
try {
jdbcTemplate = new JdbcTemplate(new DBUtil().Hikar_DataSource());
} catch (Exception e) {
e.printStackTrace();
}
}
private List<Thread> Main_void(String dbType) throws Exception {
boolean flag=true;
//List<Thread> starup_list=new ArrayList<>();
stop_list.clear();
runAble=true;
try {
List list_PARTICIPANT = CommonHelp.getListBySql("select * from TB_PARTICIPANT",jdbcTemplate);
List list_LINE_TABLE=CommonHelp.getListBySql("select LINENAME,GBLINEID from line_table",jdbcTemplate);
List list_FEEUNIT_TABLE=CommonHelp.getListBySql("select ID,NAME FROM FEEUNIT_TABLE",jdbcTemplate);
List list_GANTRY_TABLE=CommonHelp.getListBySql("select * from gantry_table",jdbcTemplate);
int GPA_THREAD_COUNT_1=7;
//正常数据处理线程4个
if (dbType.equals("1")) {//oracle
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and ora_hash(passid,"+(GPA_THREAD_COUNT_1-1)+")="+i;
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
} else if (dbType.equals("2")) {//DM
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and DM_HASH(passid)%"+GPA_THREAD_COUNT_1+"="+i+" and rownum<=1500";
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//超时数据处理线程3个
if (dbType.equals("1")) {//oracle
//超时第一种情况--有出口但是累计金额不相等的
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
List<Map<String,Integer>> listTemp=new ArrayList<>();
for (int i = 0; i <= 6; i++) {
String sql2_1_1 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)="+i;
Map map=new HashMap();
map.put("sql",sql2_1_1);
map.put("threadid",20+i+1);
listTemp.add(map);
}
Map map1=new HashMap();
map1.put("sql",sql2_2_1);
map1.put("threadid",28);
listTemp.add(map1);
Map map2=new HashMap();
map2.put("sql",sql2_3_1);
map2.put("threadid",29);
listTemp.add(map2);
for (int i = 0; i < listTemp.size(); i++) {
Map map=listTemp.get(i);
Thread thread=new GetAllData(21+i,1,map.get("sql").toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
// //超时第一种情况--有出口但是累计金额不相等的
// String sql2_1_1 = "select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
// //超时第二种情况--累计金额相等但是没有出口的
// String sql2_2_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
// //超时第三种情况--没有出口累计金额也不相等的
// String sql2_3_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//
// List<String> listTemp=new ArrayList<>();
// listTemp.add(sql2_1_1);
// listTemp.add(sql2_2_1);
// listTemp.add(sql2_3_1);
//
// for (int i = 0; i < listTemp.size(); i++) {
//
// Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
// thread.start();
// stop_list.add(thread);
// State state=new State();
// state.ThreadId=thread.getId();
// state.StateUpdateTime=System.currentTimeMillis();
// state_list.add(state);
// }
} else if (dbType.equals("2")) {//DM
//超时第一种情况--有出口但是累计金额不相等的技巧口诀图解
String sql2_1_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
List<String> listTemp=new ArrayList<>();
listTemp.add(sql2_1_1);
listTemp.add(sql2_2_1);
listTemp.add(sql2_3_1);
for (int i = 0; i < listTemp.size(); i++) {
Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//二次数据上传处理线程1个
String sql3_1 = "";
if (dbType.equals("1")) {//oracle
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1=new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread3_1.start();
stop_list.add(thread3_1);
State state3_1=new State();
state3_1.ThreadId=thread3_1.getId();
state3_1.StateUpdateTime=System.currentTimeMillis();
state_list.add(state3_1);
} else if (dbType.equals("2")) {//DM
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1= new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread3_1.start();
}
//删除中间表数据线程,1个
if (dbType.equals("1")) {
String sql4_1 = "delete gantry_pass_center where ROUND(TO_NUMBER(sysdate - handletime))>25";
deleteCenter deleteC=new deleteCenter(jdbcTemplate,sql4_1,runAble,this);
Thread thread=new Thread(deleteC);
thread.start();
// stop_list.add(thread);
// State state=new State();
// state.ThreadId=thread.getId();
// state.StateUpdateTime=System.currentTimeMillis();
// state_list.add(state);
}
//预分账线程7个
int THREAD_GANTRY_STAT_COUNT=7;
for (int i = 0; i < THREAD_GANTRY_STAT_COUNT; i++) {
String sql="select * from gantry_pass_stat_temp where ora_hash(tradeid,"+(THREAD_GANTRY_STAT_COUNT-1)+")="+i+" and rownum<=1000";
GetGantryStat getGantryStat=new GetGantryStat(jdbcTemplate,sql,runAble,this);
Thread thread=new Thread(getGantryStat);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
catch (Exception e){
flag=false;
e.printStackTrace();
LogClass.debug(e.toString());
}
finally {
return stop_list;
}
}
}

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<Config>
<!--columns,门架流水查询字段-->
<columns>a.OBUISSUEID,a.GANTRYID,a.FEEPROVBEGINHEX,a.ENTOLLSTATIONHEX,a.PASSID,a.ENTIME,a.PAYFEE,a.FEE,a.DISCOUNTFEE,a.CPUCARDTYPE,a.CPUCARDID,a.OBUSIGN,a.VEHICLEPLATE,a.TOLLINTERVALID,a.PAYFEEGROUP,a.FEEGROUP,a.VEHICLESIGN,a.FEEVEHICLETYPE,a.VEHICLETYPE,a.DISCOUNTTYPE,a.PROVINCEDISCOUNTFEE,a.ORIGINFEE,a.TRANSTIME,a.OBUSN,b.NAME,a.OBUPROVPAYFEESUMAFTER,a.OBUPROVFEESUMAFTER,a.FEESPARE1,a.OBUVEHICLEPLATE,a.CPUVEHICLEPLATE,a.FEESUMLOCALAFTER,a.CPUNETID,a.OBUPROVTRADESUCCNUMAFTER,a.TRADEID,a.VEHICLEUSERTYPE,a.AXLECOUNT,a.LASTGANTRYHEX,a.MEDIATYPE,a.FEECALCRESULT, a.GANTRYTYPE,'' &quot;GANTRYKEY&quot;,'' &quot;GANTRYVERIFY&quot;,a.OBUFEESUMAFTER,a.OBUTOTALTRADESUCCNUMAFTER,a.NOCARDTIMESAFTER,a.CARDFEESUMAFTER,a.PROVINCENUMAFTER,a.TOTALWEIGHT,a.IDENTIFYVEHICLETYPE,a.VEHICLECLASS,a.TAC,a.TRANSFEE,a.TERMINALTRANSNO,a.TRANSTYPE,a.TERMINALNO,a.ALGORITHMIDENTIFIER,a.RATEVERSION,a.VEHICLEPICID,'' &quot;DECRIPTION&quot;,a.OBUMAC,a.KEYVERSION,to_number(substr(a.gantryOrderNum,0,1)) &quot;DIRECTION&quot;,a.OBUELECTRICAL,b.GANTRYHEX,a.FEEINFO1,a.FEEINFO2,a.FEEINFO3,a.CPUISSUEID,a.TRADERESULT,a.OBUTRADERESULT,a.VEHICLESEAT</columns>
<!--省界出口门架ID-->
<boundaryOut>G001215001000220010|G001215001000220020|S002715001002610010|S002715001002610020|G002515001000610010|G002515001000610020|G002515001000220010|G002515001000220020|G001015003000220010|G001015003000220020|G181715005000810010|G181715005000810020|G004515004001210010|G004515004001210020|G001615004000220010|G001615004000220020|G251115002000220010|G251115002000220020|G006515003001410010|G006515003001410020|G000615001000220010|G000615001000220020|G000715001000220010|G000715001000220020|G005515004010810010|G005515004010810020|G005915001001410010|G005915001001410020|G000615010001410010|G000615010001410020|G000715003004210010|G000715003004210020|G001815001000220010|G001815001000220020|G004515001000220010|G004515001000220020|S003115004001010010|S003115004001010020</boundaryOut>
<!--省界入口门架ID-->
<boundaryIn>G001215001000210010|G001215001000210020|S002715001002620010|S002715001002620020|G002515001000210010|G002515001000210020|G002515001000620010|G002515001000620020|G001015003000210010|G001015003000210020|G181715005000820010|G181715005000820020|G001615004000210010|G001615004000210020|G004515004001220010|G004515004001220020|G251115002000210010|G251115002000210020|G000615001000210010|G000615001000210020|G000715001000210010|G000715001000210020|G006515003001420010|G006515003001420020|G005515004010820010|G005515004010820020|G005915001001420010|G005915001001420020|G000615010001420010|G000615010001420020|G000715003004220010|G000715003004220020|G001815001000210010|G001815001000210020|G004515001000210010|G004515001000210020|S003115004001020010|S003115004001020020</boundaryIn>
<!--入口省界站对应门架-->
<boundarySta>[{"GANTRYHEX":"160302","GANTRYNAME":"蒙冀界-兴和东","ENSTAHEX":"13000000"},{"GANTRYHEX":"160802","GANTRYNAME":"蒙黑界-阿荣旗南","ENSTAHEX":"23000000"},{"GANTRYHEX":"160B02","GANTRYNAME":"蒙吉界-白音乌苏","ENSTAHEX":"22000000"},{"GANTRYHEX":"160E3E","GANTRYNAME":"平庄主线-平庄","ENSTAHEX":"21000000"},{"GANTRYHEX":"161024","GANTRYNAME":"清水河界-十七沟","ENSTAHEX":"14000000"},{"GANTRYHEX":"161302","GANTRYNAME":"那木斯-金宝屯","ENSTAHEX":"22000000"},{"GANTRYHEX":"161402","GANTRYNAME":"好力堡-甘旗卡","ENSTAHEX":"21000000"},{"GANTRYHEX":"161602","GANTRYNAME":"欧里主线-巴彦塔拉","ENSTAHEX":"22000000"},{"GANTRYHEX":"1703BA","GANTRYNAME":"蒙宁界-乌斯太","ENSTAHEX":"64000000"},{"GANTRYHEX":"17057A","GANTRYNAME":"黑鹰山主线-黑鹰山","ENSTAHEX":"62000000"},{"GANTRYHEX":"1709E2","GANTRYNAME":"三号地-贡宝拉格","ENSTAHEX":"13000000"},{"GANTRYHEX":"1712C8","GANTRYNAME":"巴润别立主线-长流水","ENSTAHEX":"64000000"},{"GANTRYHEX":"171306","GANTRYNAME":"布敦花-查日苏","ENSTAHEX":"21000000"},{"GANTRYHEX":"17163E","GANTRYNAME":"内蒙茅荆坝-美林","ENSTAHEX":"13000000"},{"GANTRYHEX":"171994","GANTRYNAME":"蒙晋界-丰镇","ENSTAHEX":"14000000"},{"GANTRYHEX":"171C2E","GANTRYNAME":"和林格尔主线-新店子互通","ENSTAHEX":"14000000"},{"GANTRYHEX":"171E2C","GANTRYNAME":"蒙陕界-兰家梁","ENSTAHEX":"61000000"},{"GANTRYHEX":"172844","GANTRYNAME":"龙口界-龙口","ENSTAHEX":"14000000"},{"GANTRYHEX":"161328","GANTRYNAME":"化德东至化德界门架","ENSTAHEX":"13000000"},{"GANTRYHEX":"171328","GANTRYNAME":"化德界至化德东门架","ENSTAHEX":"13000000"},{"GANTRYHEX":"160516","GANTRYNAME":"韩家营-兴和南","ENSTAHEX":"13000000"}]</boundarySta>
<!--是否写日志,0不写日志1写日志-->
<isLog>0</isLog>
<!--车牌匹配正常表达式-->
<RegexStr>^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z挂学警港澳领试超外0-9]{3,9}_(0|1|2|3|4|5|6|7|11|12)$|^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-Z0-9][A-Z0-9]{4}应急_(0|1|2|3|4|5|6|7|11|12)$</RegexStr>
<!--通行方省中心ID-->
<serProvinceId>150201</serProvinceId>
<!--超时处理时间 分钟为单位 68小时-->
<timeOut>4080</timeOut>
<!--最后更新时间超时 分钟为单位-->
<lastTimeOut>0</lastTimeOut>
<!--已处理数据删除天数-->
<deleteDays>30</deleteDays>
<!--DBType,1是oracle2是DM,3是sqlserver4是Mysql-->
<DbType>1</DbType>
<!--Oracle JDBC连接字符串-->
<JDBCOralce_url>jdbc:oracle:thin:@//10.15.100.5:1521/torcl</JDBCOralce_url>
<JDBCOralce_user>nmgmpayadmin</JDBCOralce_user>
<JDBCOralce_password>nmgh90[]</JDBCOralce_password>
<!--DM JDBC连接字符串-->
<JDBCDM_url>jdbc:dm://10.115.255.4:5236/NMGGJT</JDBCDM_url>
<JDBCDM_user>NMGGJT</JDBCDM_user>
<JDBCDM_password>1234567890</JDBCDM_password>
<!--webservice服务地址-->
<webservice_url>http://10.15.99.78:8081/FeeModuleService/FeeModuleService</webservice_url>
</Config>

@ -0,0 +1,55 @@
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.3.0 svn-revision#3528ea595bd29309f69172d231bbce272d21035c. --><!-- Generated by JAX-WS RI (http://javaee.github.io/metro-jax-ws). RI's version is JAX-WS RI 2.3.0 svn-revision#3528ea595bd29309f69172d231bbce272d21035c. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://FeeModuleService.trkf.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://FeeModuleService.trkf.com/" name="FeeModuleServiceService">
<types>
<xsd:schema>
<xsd:import namespace="http://FeeModuleService.trkf.com/" schemaLocation="http://10.15.99.78:8081/FeeModuleService/FeeModuleService?xsd=1"/>
</xsd:schema>
</types>
<message name="getFee">
<part name="parameters" element="tns:getFee"/>
</message>
<message name="getFeeResponse">
<part name="parameters" element="tns:getFeeResponse"/>
</message>
<message name="GetStaFee">
<part name="parameters" element="tns:GetStaFee"/>
</message>
<message name="GetStaFeeResponse">
<part name="parameters" element="tns:GetStaFeeResponse"/>
</message>
<portType name="FeeModuleService">
<operation name="getFee">
<input wsam:Action="http://FeeModuleService.trkf.com/FeeModuleService/getFeeRequest" message="tns:getFee"/>
<output wsam:Action="http://FeeModuleService.trkf.com/FeeModuleService/getFeeResponse" message="tns:getFeeResponse"/>
</operation>
<operation name="GetStaFee">
<input wsam:Action="http://FeeModuleService.trkf.com/FeeModuleService/GetStaFeeRequest" message="tns:GetStaFee"/>
<output wsam:Action="http://FeeModuleService.trkf.com/FeeModuleService/GetStaFeeResponse" message="tns:GetStaFeeResponse"/>
</operation>
</portType>
<binding name="FeeModuleServicePortBinding" type="tns:FeeModuleService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getFee">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="GetStaFee">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="FeeModuleServiceService">
<port name="FeeModuleServicePort" binding="tns:FeeModuleServicePortBinding">
<soap:address location="http://10.15.99.78:8081/FeeModuleService/FeeModuleService"/>
</port>
</service>
</definitions>

@ -0,0 +1,3 @@
[2022-06-20 10:49:20.530] DL 日志
[2022-06-20 10:49:20.530] 测试数据
[2022-06-20 10:52:32.239] 测试数据

@ -0,0 +1,197 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GAMIN {
public static void main(String[] args) throws Exception {
List<Thread> list=new startGPA().startUp();
}
private List<Thread> Main_void(String dbType) throws Exception {
boolean flag=true;
List<Thread> stop_list=new ArrayList<>();
List<startGPA.State> state_list=new ArrayList<>();
boolean runAble=true;
startGPA s=new startGPA();
stop_list.clear();
try {
JdbcTemplate jdbcTemplate=new JdbcTemplate(new DBUtil().Hikar_DataSource());
List list_PARTICIPANT = CommonHelp.getListBySql("select * from TB_PARTICIPANT",jdbcTemplate);
List list_LINE_TABLE=CommonHelp.getListBySql("select LINENAME,GBLINEID from line_table",jdbcTemplate);
List list_FEEUNIT_TABLE=CommonHelp.getListBySql("select ID,NAME FROM FEEUNIT_TABLE",jdbcTemplate);
List list_GANTRY_TABLE=CommonHelp.getListBySql("select * from gantry_table",jdbcTemplate);
int GPA_THREAD_COUNT_1=7;
//正常数据处理线程4个
if (dbType.equals("1")) {//oracle
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and ora_hash(passid,"+(GPA_THREAD_COUNT_1-1)+")="+i;
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
} else if (dbType.equals("2")) {//DM
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and DM_HASH(passid)%"+GPA_THREAD_COUNT_1+"="+i+" and rownum<=1500";
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//超时数据处理线程3个
if (dbType.equals("1")) {//oracle
//超时第一种情况--有出口但是累计金额不相等的
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
List<Map<String,Integer>> listTemp=new ArrayList<>();
for (int i = 0; i <= 6; i++) {
String sql2_1_1 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)="+i;
Map map=new HashMap();
map.put("sql",sql2_1_1);
map.put("threadid",20+i+1);
listTemp.add(map);
}
Map map1=new HashMap();
map1.put("sql",sql2_2_1);
map1.put("threadid",28);
listTemp.add(map1);
Map map2=new HashMap();
map2.put("sql",sql2_3_1);
map2.put("threadid",29);
listTemp.add(map2);
for (Map<String, Integer> stringIntegerMap : listTemp) {
Thread thread=new GetAllData(Integer.parseInt(stringIntegerMap.get("threadid").toString()),1,stringIntegerMap.get("sql").toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
// for (int i = 0; i < listTemp.size(); i++) {
//
// Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
// thread.start();
// stop_list.add(thread);
// startGPA.State state=new startGPA.State();
// state.ThreadId=thread.getId();
// state.StateUpdateTime=System.currentTimeMillis();
// state_list.add(state);
// }
} else if (dbType.equals("2")) {//DM
//超时第一种情况--有出口但是累计金额不相等的技巧口诀图解
String sql2_1_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
List<String> listTemp=new ArrayList<>();
listTemp.add(sql2_1_1);
listTemp.add(sql2_2_1);
listTemp.add(sql2_3_1);
for (int i = 0; i < listTemp.size(); i++) {
Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//二次数据上传处理线程1个
String sql3_1 = "";
if (dbType.equals("1")) {//oracle
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1=new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);
thread3_1.start();
stop_list.add(thread3_1);
startGPA.State state3_1=new startGPA.State();
state3_1.ThreadId=thread3_1.getId();
state3_1.StateUpdateTime=System.currentTimeMillis();
state_list.add(state3_1);
} else if (dbType.equals("2")) {//DM
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1=new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,s);;
thread3_1.start();
}
//删除中间表数据线程,1个
if (dbType.equals("1")) {
String sql4_1 = "delete gantry_pass_center where ROUND(TO_NUMBER(sysdate - handletime))>25";
deleteCenter deleteC=new deleteCenter(jdbcTemplate,sql4_1,runAble,s);
Thread thread=new Thread(deleteC);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
//预分账线程7个
int THREAD_GANTRY_STAT_COUNT=7;
for (int i = 0; i < THREAD_GANTRY_STAT_COUNT; i++) {
String sql="select * from gantry_pass_stat_temp where ora_hash(tradeid,"+(THREAD_GANTRY_STAT_COUNT-1)+")="+i+" and rownum<=1000";
GetGantryStat getGantryStat=new GetGantryStat(jdbcTemplate,sql,runAble,s);
Thread thread=new Thread(getGantryStat);
thread.start();
stop_list.add(thread);
startGPA.State state=new startGPA.State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
catch (Exception e){
flag=false;
e.printStackTrace();
LogClass.debug(e.toString());
}
finally {
return stop_list;
}
}
}

@ -0,0 +1,58 @@
package GPA;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.*;
import java.time.OffsetDateTime;
import java.util.Properties;
public class DBUtil {
public DataSource Hikar_DataSource() throws Exception {//这个是今天改的
HikariConfig config=new HikariConfig();
try {
String dbType=CommonHelp.GetConfigValue("DbType");
if (dbType.equals("1")){
config.setDriverClassName("oracle.jdbc.driver.OracleDriver");
config.setJdbcUrl("jdbc:oracle:thin:@//10.15.100.5:1521/torcl");
config.setUsername("nmgmpayadmin");
config.setPoolName("100.5mpay");
config.setPassword("nmgh90[]");
config.addDataSourceProperty("v$session.osuser","DL");
config.addDataSourceProperty("v$session.machine","10.15.99.66");
config.addDataSourceProperty("v$session.program","gantry_pass_all");
config.setMaximumPoolSize(16);
config.setMinimumIdle(8);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
else if (dbType.equals("2")){
config.setDriverClassName("dm.jdbc.driver.DmDriver");
config.setJdbcUrl(CommonHelp.GetConfigValue("JDBCDM_url"));
config.setUsername(CommonHelp.GetConfigValue("JDBCDM_user"));
config.setPassword(CommonHelp.GetConfigValue("JDBCDM_password"));
config.setPoolName("GT");
config.setMaximumPoolSize(32);
config.setMinimumIdle(16);
config.setConnectionTestQuery("select 1 from dual");
config.setAutoCommit(true);
}
}
catch (Exception e){
System.out.println("连接池错误:"+e.toString());
}
DataSource ds=new HikariDataSource(config);
return ds;
}
}

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

@ -0,0 +1,2 @@
[2022-06-24 10:57:00.262] DL 日志
[2022-06-24 10:57:00.262] 测试数据

@ -0,0 +1,18 @@
package GPA;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class CommonCon {
public Connection getDMCon() throws Exception {
Class.forName("dm.jdbc.driver.DmDriver");
Connection connection=DriverManager.getConnection(CommonHelp.GetConfigValue("JDBCDM_url"),CommonHelp.GetConfigValue("JDBCDM_user"),CommonHelp.GetConfigValue("JDBCDM_password"));
return connection;
}
}

@ -0,0 +1,60 @@
package com.trkf.feemoduleservice;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
/**
* <p>getFee complex type的 Java 类。
*
* <p>以下模式片段指定包含在此类中的预期内容。
*
* <pre>
* &lt;complexType name="getFee">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "getFee", propOrder = {
"arg0"
})
public class GetFee {
protected String arg0;
/**
* 获取arg0属性的值。
*
* @return
* possible object is
* {@link String }
*
*/
public String getArg0() {
return arg0;
}
/**
* 设置arg0属性的值。
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setArg0(String value) {
this.arg0 = value;
}
}

@ -0,0 +1,12 @@
<?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" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

@ -0,0 +1,761 @@
package GPA;
import com.alibaba.fastjson.JSONObject;
import org.springframework.jdbc.core.JdbcTemplate;
import java.text.SimpleDateFormat;
import java.util.*;
public class GPA_DATA {
public GPA_DATA() throws Exception {
}
public void GetAllETCData(String sql, int isTimeOut, int threadId, JdbcTemplate jdbcTemplate,
List list_PARTICIPANT, List list_LINE_TABLE, List list_FEEUNIT_TABLE,List list_GANTRY_TABLE) {
//LogClass log=new LogClass();
long startTime = 0;
long endTime = 0;
try {
startTime = System.currentTimeMillis();
List list_passid = CommonHelp.getListBySql(sql, jdbcTemplate);
endTime = System.currentTimeMillis();
if (list_passid.size() > 0) {
LogClass.debug(threadId + "passid查询用时" + (endTime - startTime) + ",查询结果:" + list_passid.size() + "条");
StringBuilder sb_delete = new StringBuilder();
for (int i = 0; i < list_passid.size(); i++) {
try {
Map map_passid = (Map) list_passid.get(i);
System.out.println("进程ID:" + threadId + ",开始处理当前查询结果第" + (i + 1) + "条PASSID:" + (map_passid.get("PASSID") == null ? "" : map_passid.get("PASSID").toString()));
sb_delete.append("'" + (map_passid.get("PASSID") == null ? "" :
map_passid.get("PASSID").toString()) + "',");
String columns = CommonHelp.GetConfigValue("columns");
String searchType = (map_passid.get("PASSID") == null || map_passid.get("PASSID").toString().length()<=1) ? "" :
map_passid.get("PASSID").toString().substring(1, 2);
String sql_gantry_pass = "";
if (searchType.equals("1")) {
if (map_passid.get("BACKUP3").toString().equals("OUT")) {
sql_gantry_pass = "select * from (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/" +
" " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left " +
"join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a" +
".obutraderesult=0 and a.passid='" + (map_passid.get("PASSID") == null ? ""
: map_passid.get("PASSID").toString()) + "' and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " order by a.obuprovtradesuccnumafter,a.transtime ) t union all (select /*+rule(gantry_pass_out UX_GANTRY_PASS_OUT_PASSID)*/ " + columns + ",'gantry_pass_out' datasrc,paytype from gantry_pass_out a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a.obutraderesult=0 and a.passid='" + map_passid.get("PASSID").toString() + "' and a.provincenumafter>0 and rownum<=1)";
} else {
sql_gantry_pass = "select * from (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/" +
" " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left " +
"join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a" +
".obutraderesult=0 and a.passid='" + (map_passid.get("PASSID") == null ? ""
: map_passid.get("PASSID").toString()) + "' and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " order by a.obuprovtradesuccnumafter,a.transtime ) t union all (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/ " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and b.boundarytype=2 and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " and a.passid='" + (map_passid.get("PASSID") == null ? "" : map_passid.get("PASSID").toString()) + "' and instr(a.specialtype,'154')=0 ) union all (select /*+rule(gantry_pass_out UX_GANTRY_PASS_OUT_PASSID)*/ " + columns + ",'gantry_pass_out' datasrc,paytype from gantry_pass_out a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a.obutraderesult=0 and a.passid='" + map_passid.get("PASSID").toString() + "' and a.provincenumafter=" + map_passid.get("PROVINCENUMAFTER").toString() + " and a.provincenumafter>0 and rownum<=1)";
}
} else if (searchType.equals("2")) {
if (map_passid.get("BACKUP3").toString().equals("OUT")) {
sql_gantry_pass = "select * from (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/" +
" " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left " +
"join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a" +
".traderesult=0 and a.passid='" + (map_passid.get("PASSID") == null ? "" :
map_passid.get("PASSID").toString()) + "' and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " order by a.obuprovtradesuccnumafter,a.transtime) t union all (select /*+rule(gantry_pass_out UX_GANTRY_PASS_OUT_PASSID)*/ " + columns + ",'gantry_pass_out' datasrc,paytype from gantry_pass_out a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a.traderesult=0 and a.passid='" + map_passid.get("PASSID").toString() + "' and a.provincenumafter>0 and rownum<=1)";
} else {
sql_gantry_pass = "select * from (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/" +
" " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left " +
"join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a" +
".traderesult=0 and a.passid='" + (map_passid.get("PASSID") == null ? "" :
map_passid.get("PASSID").toString()) + "' and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " order by a.obuprovtradesuccnumafter,a.transtime) t union all (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/ " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and b.boundarytype=2 and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " and a.passid='" + (map_passid.get("PASSID") == null ? "" : map_passid.get("PASSID").toString()) + "' and instr(a.specialtype,'154')=0 ) union all (select /*+rule(gantry_pass_out UX_GANTRY_PASS_OUT_PASSID)*/ " + columns + ",'gantry_pass_out' datasrc,paytype from gantry_pass_out a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a.traderesult=0 and a.passid='" + map_passid.get("PASSID").toString() + "' and a.provincenumafter=" + map_passid.get("PROVINCENUMAFTER").toString() + " and a.provincenumafter>0 and rownum<=1)";
}
} else {
if (map_passid.get("BACKUP3").toString().equals("OUT")) {
sql_gantry_pass = "select * from (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/" +
" " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left " +
"join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a" +
".traderesult=0 and a.passid='" + (map_passid.get("PASSID") == null ? "" :
map_passid.get("PASSID").toString()) + "' and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " order by a.obuprovtradesuccnumafter,a.transtime) t union all (select /*+rule(gantry_pass_out UX_GANTRY_PASS_OUT_PASSID)*/ " + columns + ",'gantry_pass_out' datasrc,paytype from gantry_pass_out a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a.traderesult=0 and a.passid='" + map_passid.get("PASSID").toString() + "' and a.provincenumafter>0 and rownum<=1)";
} else {
sql_gantry_pass = "select * from (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/" +
" " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left " +
"join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a" +
".traderesult=0 and a.passid='" + (map_passid.get("PASSID") == null ? "" :
map_passid.get("PASSID").toString()) + "' and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " order by a.obuprovtradesuccnumafter,a.transtime) t union all (select /*+rule(gantry_pass UX_GANTRY_PASS_PASSID)*/ " + columns + ",'gantry_pass' DATASRC,-1 PAYTYPE from gantry_pass a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and b.boundarytype=2 and a.provincenumafter=" + (map_passid.get("PROVINCENUMAFTER") == null ? "" : map_passid.get("PROVINCENUMAFTER").toString()) + " and a.passid='" + (map_passid.get("PASSID") == null ? "" : map_passid.get("PASSID").toString()) + "' and instr(a.specialtype,'154')=0 ) union all (select /*+rule(gantry_pass_out UX_GANTRY_PASS_OUT_PASSID)*/ " + columns + ",'gantry_pass_out' datasrc,paytype from gantry_pass_out a left join gantry_table b on a.gantryid=b.id where a.feecalcresult=0 and a.traderesult=0 and a.passid='" + map_passid.get("PASSID").toString() + "' and a.provincenumafter=" + map_passid.get("PROVINCENUMAFTER").toString() + " and a.provincenumafter>0 and rownum<=1)";
}
}
//startTime=System.currentTimeMillis();
List list_gantry_pass = CommonHelp.getListBySql(sql_gantry_pass, jdbcTemplate);
if (list_gantry_pass.size() == 1 && ((Map) list_gantry_pass.get(0)).get("DATASRC").toString().equals("gantry_pass_out")) {
if (searchType.equals("1")) {
sql_gantry_pass = sql_gantry_pass.replaceAll("and a.obutraderesult=0", " and (instr(a" +
".specialtype,'154')=0 or a.specialtype is null)");
} else if (searchType.equals("2")) {
sql_gantry_pass = sql_gantry_pass.replaceAll("and a.traderesult=0", " and (instr(a" +
".specialtype,'154')=0 or a.specialtype is null)");
} else {
sql_gantry_pass = sql_gantry_pass.replaceAll("and a.traderesult=0", " and (instr(a" +
".specialtype,'154')=0 or a.specialtype is null)");
}
list_gantry_pass = CommonHelp.getListBySql(sql_gantry_pass, jdbcTemplate);
}
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "单条PASSID查询用时" + (endTime - startTime) + ",PASSID"+map_passid
// .get("PASSID").toString());
if (list_gantry_pass.size() > 0) {
//startTime=System.currentTimeMillis();
//去除掉出口后的交易数据
list_gantry_pass = CommonHelp.delete_gantry_pass_out(list_gantry_pass);
//去除掉查询结果中重复交易的数据
list_gantry_pass = CommonHelp.delete_repeat(list_gantry_pass);
//处理计费单元ID,如果有空值则根据门架ID填写计费单元ID
list_gantry_pass = CommonHelp.handle_tollinterval(list_gantry_pass, jdbcTemplate);
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第一步处理用时:" + (endTime - startTime) + ",PASSID"+map_passid.get
// ("PASSID").toString());
//startTime=System.currentTimeMillis();
int DEALCOUNT = 0;
int FEECALC = 0;
for (int j = 0; j < list_gantry_pass.size(); j++) {
Map map = (Map) list_gantry_pass.get(j);
if (map.get("TRADERESULT") == null ? false :
map.get("TRADERESULT").toString().equals("0")) {
DEALCOUNT++;
}
if (map.get("FEECALCRESULT") == null ? false :
map.get("FEECALCRESULT").toString().equals("0")) {
FEECALC++;
}
}
//处理省界门架
if (CommonHelp.GetConfigValue("boundaryOut").toString().indexOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("GANTRYID") == null ? "" : ((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("GANTRYID").toString()) != -1 && (((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)) == null ? false : ((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("OBUPROVTRADESUCCNUMAFTER").toString().equals("0"))) {
Map map = (Map) list_gantry_pass.get(list_gantry_pass.size() - 1);
map.put("OBUPROVTRADESUCCNUMAFTER", list_gantry_pass.size());
list_gantry_pass.set(list_gantry_pass.size() - 1, map);
}
if (list_gantry_pass.size() > 1) {
list_gantry_pass = CommonHelp.console_Result_DataTable((list_gantry_pass));
}
if (((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("DATASRC").toString().equals("gantry_pass_out")) {
if (list_gantry_pass.size() > 1) {
if (list_gantry_pass.size() > 1) {
Map map = (Map) list_gantry_pass.get(list_gantry_pass.size() - 1);
map.put("OBUPROVTRADESUCCNUMAFTER",
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("OBUPROVTRADESUCCNUMAFTER").toString()) + 1);
list_gantry_pass.set(list_gantry_pass.size() - 1, map);
} else {
Map map = (Map) list_gantry_pass.get(list_gantry_pass.size() - 1);
map.put("OBUPROVTRADESUCCNUMAFTER", 1);
list_gantry_pass.set(list_gantry_pass.size() - 1, map);
}
} else {
Map map = (Map) list_gantry_pass.get(list_gantry_pass.size() - 1);
map.put("OBUPROVTRADESUCCNUMAFTER", 1);
list_gantry_pass.set(list_gantry_pass.size() - 1, map);
}
}
int mediaType = -1;
if (map_passid.get("MEDIATYPE") == null ? true :
map_passid.get("MEDIATYPE").toString().length() == 0) {
mediaType = Integer.valueOf(map_passid.get("PASSID").toString().substring(1, 2));
} else {
mediaType = Integer.valueOf(map_passid.get("MEDIATYPE").toString());
}
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第二步处理用时:" + (endTime - startTime) + ",PASSID"+map_passid.get
// ("PASSID").toString());
if (list_gantry_pass != null) {
if (list_gantry_pass.size() > 0) {
//startTime=System.currentTimeMillis();
int obuprovfeesumafter =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("OBUPROVFEESUMAFTER").toString());
list_gantry_pass = CommonHelp.GetLibDataTable(list_gantry_pass, threadId,
map_passid.get("PASSID").toString(), sql_gantry_pass, jdbcTemplate);
String enPointId = "";//计费起始点编号
String enTollStationName = "";//计费起点名称
String exPointId = "";//计费终点编号
String exTollStationName = "";//计费终点名称
enPointId = ((Map) list_gantry_pass.get(0)).get("GANTRYID").toString();
enTollStationName = ((Map) list_gantry_pass.get(0)).get("NAME").toString();
exPointId = ((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get(
"GANTRYID").toString();
exTollStationName =
((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("NAME").toString();
String id = "";
boolean isneedHZ = true;//默认汇总
if (CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUNETID").equals(
"0501")) {
isneedHZ = false;
}
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第三步处理用时:" + (endTime - startTime) + ",
// PASSID"+map_passid.get("PASSID").toString());
if (isneedHZ) {
//startTime=System.currentTimeMillis();
String serProvinceId = CommonHelp.GetConfigValue("serProvinceId");
String issuerId = "";
String cpuissuerId = "";
if (mediaType == 1 || mediaType == 2) {
List list_participant_temp = new ArrayList();
String provincebcdname =
CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "OBUISSUEID"
).length() < 8 ? "B9ABC2B7" :
CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"OBUISSUEID").substring(0, 8);
boolean issuerId_isSub = true;
for (int j = 0; j < list_PARTICIPANT.size(); j++) {
Map map = (Map) list_PARTICIPANT.get(j);
if (map.get("PROVINCEBCDNAME").equals(provincebcdname)) {
issuerId = map.get("BACKUP2").toString();
issuerId_isSub = false;
break;
}
}
if (issuerId_isSub) {
String cpunetid = CommonHelp.GetRightCPUNETID(list_gantry_pass);
if (cpunetid.length() == 4 && !cpunetid.equals("0000")) {
issuerId = cpunetid.substring(0, 2) + "01" + cpunetid.substring(2
, 4);
} else {
issuerId =
CommonHelp.GetOUBissueID(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "OBUISSUEID"), jdbcTemplate);
}
}
} else {
cpuissuerId = "";
}
String tollIntervalId = "";
String tollIntervalFee = "";
tollIntervalId = CommonHelp.GetTollIntervalGroup(list_gantry_pass,
jdbcTemplate);//收费单元编号组合
tollIntervalFee = CommonHelp.GetFeeGroup(list_gantry_pass);//交易金额组合
String payfee_group = CommonHelp.GetPayFeegroup(list_gantry_pass);
int payFee = 0;
int fee = 0;
int discountFee = 0;
payFee = CommonHelp.GetArrSum(payfee_group);
fee = CommonHelp.GetArrSum(tollIntervalFee);
discountFee = payFee - fee;
int vehicleType = CommonHelp.GetRightvehicleType(list_gantry_pass);
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第四步处理用时:" + (endTime - startTime) + ",
// PASSID"+map_passid.get("PASSID").toString());
//startTime=System.currentTimeMillis();
String enTollStationHex = ((Map) list_gantry_pass.get(0)).get(
"ENTOLLSTATIONHEX").toString();//入口
if (fee != obuprovfeesumafter || ((Map) list_gantry_pass.get(0)).get("DATASRC").toString().equals("gantry_pass_out")) {
if (((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get(
"DATASRC").toString().equals("gantry_pass_out")) {
if (list_gantry_pass.size() > 1) {
String lastGantryHex =
((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("GANTRYHEX").toString();
String stationHex_sql = "select b.STATIONHEX from gantry_pass_out" +
" a left join name_table b on a.gbstationid=b.gbstationid" +
" where passid='" + map_passid.get("PASSID").toString() + "'";
String curTollGantry =
((Map) CommonHelp.getListBySql(stationHex_sql,
jdbcTemplate).get(0)).get("STATIONHEX").toString();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =
sdf.parse(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("TRANSTIME").toString());
String curPassTime =
new SimpleDateFormat("yyyy-MM-dd").format(date) + "T" + new SimpleDateFormat("HH:mm:ss").format(date);
int totalWeight = Integer.valueOf(((Map) list_gantry_pass.get(0)).get("TOTALWEIGHT").toString());
int enaxlecount =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("AXLECOUNT").toString());
int vehicleUserType =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("VEHICLEUSERTYPE").toString());
int obuprovfeesumafter_1 = 0;
int obuprovpayfeesumafter_1 = 0;
if (mediaType == 1) {
obuprovpayfeesumafter_1 =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("OBUPROVPAYFEESUMAFTER").toString().length() == 0 ? "0" : ((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("OBUPROVPAYFEESUMAFTER").toString());//payFeeSumLocal
obuprovfeesumafter_1 =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("OBUPROVFEESUMAFTER").toString().length() == 0 ? "0" : ((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("OBUPROVFEESUMAFTER").toString());//realFeeSumLocal
} else if (mediaType == 2) {
obuprovpayfeesumafter_1 =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("FEESUMLOCALAFTER").toString().length() == 0 ? "0" : ((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("FEESUMLOCALAFTER").toString());//payFeeSumLocal
obuprovfeesumafter_1 =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("FEESPARE1").toString().length() == 0 ? "0" : ((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("FEESPARE1").toString());//realFeeSumLocal
}
list_gantry_pass = CommonHelp.lastGantryToOut(list_gantry_pass,
((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("GANTRYHEX").toString(), curTollGantry, curPassTime, vehicleType, enaxlecount, vehicleUserType, ((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("GANTRYID").toString(), ((Map) list_gantry_pass.get(list_gantry_pass.size() - 2)).get("NAME").toString(), mediaType, obuprovpayfeesumafter_1, obuprovfeesumafter_1, sql_gantry_pass, map_passid.get("PASSID").toString(), totalWeight, jdbcTemplate);
} else if (((Map) list_gantry_pass.get(0)).get("DATASRC").toString().equals("gantry_pass_out")) {
String lastGantryHex = ((Map) list_gantry_pass.get(0)).get("LASTGANTRYHEX")==null?"":((Map) list_gantry_pass.get(0)).get("LASTGANTRYHEX").toString();
String feeProvBeginHex = ((Map) list_gantry_pass.get(0)).get("FEEPROVBEGINHEX") == null ? "" : ((Map) list_gantry_pass.get(0)).get("FEEPROVBEGINHEX").toString();
String curTollGantry = ((Map) list_gantry_pass.get(0)).get(
"GANTRYID").toString();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(((Map) list_gantry_pass.get(0)).get(
"TRANSTIME").toString());
String curPassTime =
new SimpleDateFormat("yyyy-MM-dd").format(date) + "T" + new SimpleDateFormat("HH:mm:ss").format(date);
int totalWeight = Integer.valueOf(((Map) list_gantry_pass.get(0)).get("TOTALWEIGHT").toString());
int enaxlecount =
Integer.valueOf(((Map) list_gantry_pass.get(0)).get(
"AXLECOUNT").toString());//入口轴数
int vehicleUserType =
Integer.valueOf(((Map) list_gantry_pass.get(0)).get(
"VEHICLEUSERTYPE").toString());//
int obuprovpayfeesumafter_1 = 0;
int obuprovfeesumafter_1 = 0;
list_gantry_pass = CommonHelp.firstGantryToOut(list_gantry_pass,
enTollStationHex, curTollGantry, curPassTime, vehicleType
, enaxlecount, vehicleUserType, mediaType,
obuprovpayfeesumafter_1, obuprovfeesumafter_1, "", "",
sql_gantry_pass, map_passid.get("PASSID").toString(), feeProvBeginHex, totalWeight,
jdbcTemplate,list_GANTRY_TABLE,lastGantryHex);
}
}
}
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第五步处理用时:" + (endTime - startTime) + ",
// PASSID"+map_passid.get("PASSID").toString());
//startTime=System.currentTimeMillis();
id = map_passid.get("PASSID").toString() + "-" + enPointId + "-" + CommonHelp.idTime(((Map) list_gantry_pass.get(0)).get("TRANSTIME").toString());
payfee_group = CommonHelp.GetPayFeegroup(list_gantry_pass);
tollIntervalId = CommonHelp.GetTollIntervalGroup(list_gantry_pass,
jdbcTemplate);
if (CommonHelp.tollIntervalId_repeat(tollIntervalId)) {//有重复交易的计费单元
list_gantry_pass =
CommonHelp.remove_repeat_tollIntervalId(list_gantry_pass,
jdbcTemplate);
tollIntervalId = CommonHelp.GetTollIntervalGroup(list_gantry_pass,
jdbcTemplate);
}
tollIntervalFee = CommonHelp.GetFeeGroup(list_gantry_pass);
payFee = CommonHelp.GetArrSum(payfee_group);
fee = CommonHelp.GetArrSum(tollIntervalFee);
discountFee = payFee - fee;
String passid = map_passid.get("PASSID").toString();
int count = list_gantry_pass.size();
String exTime = CommonHelp.GetMaxTranstime(list_gantry_pass);
String enTime = CommonHelp.longTime(((Map) list_gantry_pass.get(0)).get(
"TRANSTIME").toString());
String enStationTime =
CommonHelp.longTime(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "ENTIME"));
String cpucardid = "";
if (mediaType == 1) {
cpucardid = CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"CPUCARDID");
} else {
cpucardid = "";
}
int ENPOINTTYPE = 0;//0 默认1路段门架2省界门架3出口门架
if (CommonHelp.GetConfigValue("boundaryIn").indexOf(((Map) list_gantry_pass.get(0)).get("GANTRYID").toString()) != -1) {
ENPOINTTYPE = 2;
} else {
ENPOINTTYPE = 1;
}
int EXPOINTTYPE = 0;//0默认1路段门架2省界门架3出口门架
if (((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("DATASRC").toString().equals("gantry_pass_out")) {
EXPOINTTYPE = 3;
} else if (CommonHelp.GetConfigValue("boundaryOut").indexOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("GANTRYID").toString()) != -1) {
EXPOINTTYPE = 2;
} else if (CommonHelp.GetConfigValue("DbType").equals("2")) {
if ((((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get(
"GANTRYID").toString().equals("G551115002020820010") || ((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("GANTRYID").toString().equals("G551115002020610010")) && isTimeOut == 1) {
EXPOINTTYPE = 2;
}
} else {
EXPOINTTYPE = 1;
}
int UTURN = 0;//U转次数
int LOSTUNIT = 0;//丢失门架数量
int NOCARD = CommonHelp.GetMaxNocardtimes(list_gantry_pass);//无卡交易次数
for (int j = 0; j < list_gantry_pass.size(); j++) {
Map map = (Map) list_gantry_pass.get(j);
String feeinfo_temp = ((map.get("FEEINFO1") == null) ? "" : map.get
("FEEINFO1").toString()) + ((map.get("FEEINFO2") == null) ? "" : map.get
("FEEINFO2").toString()) + ((map.get("FEEINFO3") == null) ? "" : map.get
("FEEINFO3").toString());
if (feeinfo_temp.length() > 0) {
if (feeinfo_temp.substring(feeinfo_temp.length() - 1, feeinfo_temp
.length()).equals("}")) {
JSONObject feeInfo_temo_json = JSONObject.parseObject(feeinfo_temp);
if (feeInfo_temo_json.getIntValue("errorCode") == -28) {
UTURN++;
}
if (feeInfo_temo_json.getString("gantryIDs").length() > 6) {
LOSTUNIT += (feeInfo_temo_json.getString("gantryIDs")
.length() - 6) / 6;
}
}
}
}
String UTURN_PATH="";
if (UTURN>0){
UTURN_PATH=CommonHelp.UTURN_PATH(tollIntervalId,list_FEEUNIT_TABLE);
}
int etcCardType = 0;
if (CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUCARDTYPE").length() == 0 || CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUCARDTYPE").equals("0")) {
etcCardType = 2;
} else {
etcCardType =
Integer.valueOf(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUCARDTYPE"));
}
//etc卡编号
String etcCardId = CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"CPUCARDID").length() == 20 ?
CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUCARDID") :
(issuerId.length() == 0 ? "" :
issuerId.substring(0, 4) + CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUCARDID"));
//OBU编号
String obuId = CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "OBUSN");
int obuSign = CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"OBUSIGN").length() == 0 ? 0 :
Integer.valueOf(CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"OBUSIGN"));
String vehicleSeat = CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"VEHICLESEAT");
if (vehicleSeat == null || vehicleSeat.length() == 0) {
vehicleSeat = "0";
}
String OBUVEHICLEPLATE =
CommonHelp.Get_9Plate(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "OBUVEHICLEPLATE"));
String CPUVehiclePlate =
CommonHelp.Get_9Plate(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "CPUVEHICLEPLATE"));
String VEHICLEPLATE =
CommonHelp.Get_9Plate(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "VEHICLEPLATE"));
String vehicleId = CommonHelp.RegexCard(OBUVEHICLEPLATE, CPUVehiclePlate,
VEHICLEPLATE);//实际收费车牌
String sectionId = CommonHelp.GetSectinoidGroup(tollIntervalId);//收费路段编号组合
String sectionName = CommonHelp.GetSectionNameGroup(tollIntervalId,
list_LINE_TABLE);//收费路段名称组合
String tollIntervalName = CommonHelp.GetTollIntervalNameGroup(tollIntervalId,
list_FEEUNIT_TABLE);//收费单元名称组合
String vehicleSign =
CommonHelp.GetRightvehicleSign(CommonHelp.GetGantryPassColumsValue(list_gantry_pass, "VEHICLESIGN"));//车辆识别标识
String discountType = "";
discountType = CommonHelp.GetGantryPassColumsValue(list_gantry_pass,
"DISCOUNTTYPE");
if (discountType.equals("0") || discountType.length() == 0) {
discountType = "null";
}
int provinceDiscountFee = 0;
int originFee = 0;
if (discountType.equals("5")) {
provinceDiscountFee =
CommonHelp.GetprovinceDiscountFeeSum(list_gantry_pass);
} else {
provinceDiscountFee = 0;
originFee = 0;
}
String transaction = "";
transaction = CommonHelp.DataTableToJson(list_gantry_pass, exTime,
jdbcTemplate);
transaction = CommonHelp.StringToClob(transaction);
int outType = 0;//0未知1省内出口2省界出口
int payType = -1;
if (((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("DATASRC").toString().equals("gantry_pass_out")) {
outType = 1;
if (((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get(
"PAYTYPE").toString().length() > 0) {
payType =
Integer.valueOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("PAYTYPE").toString());
}
} else if (CommonHelp.GetConfigValue("boundaryOut").indexOf(((Map) list_gantry_pass.get(list_gantry_pass.size() - 1)).get("GANTRYID").toString()) != -1) {
outType = 2;
} else {
outType = 0;
}
int multiprovince = -1;
if (CommonHelp.GetConfigValue("boundaryOut").indexOf(enPointId) != -1) {
multiprovince = 1;
} else {
multiprovince = 0;
}
String tb_gantryid = "";
if (list_gantry_pass.size() > 1) {
if (mediaType == 1) {
for (int m = 0; m < list_gantry_pass.size(); m++) {
int feeSum = 0;
for (int n = 0; n <= m; n++) {
feeSum += Integer.valueOf(((Map) list_gantry_pass.get(n)).get("FEE").toString());
}
if (feeSum != Integer.valueOf(((Map) list_gantry_pass.get(m)).get("OBUPROVFEESUMAFTER").toString())) {
if (m == 0) {
tb_gantryid = ((Map) list_gantry_pass.get(0)).get(
"GANTRYID").toString();
} else {
tb_gantryid = ((Map) list_gantry_pass.get(m - 1)).get(
"GANTRYID").toString();
}
break;
}
}
} else if (mediaType == 2) {
for (int m = 0; m < list_gantry_pass.size(); m++) {
int feeSum = 0;
for (int n = 0; n <= m; n++) {
feeSum += Integer.valueOf(((Map) list_gantry_pass.get(n)).get("FEE").toString());
}
if (feeSum != Integer.valueOf(((Map) list_gantry_pass.get(m)).get("FEESUMLOCALAFTER").toString())) {
if (m == 0) {
tb_gantryid = ((Map) list_gantry_pass.get(0)).get(
"GANTRYID").toString();
} else {
tb_gantryid = ((Map) list_gantry_pass.get(m - 1)).get(
"GANTRYID").toString();
}
break;
}
}
}
}
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第六步处理用时:" + (endTime - startTime) + ",
// PASSID"+map_passid.get("PASSID").toString());
//startTime=System.currentTimeMillis();
int transNum = 1;
String sql_transNum =
"select TRANSNUM from gantry_pass_all where id='" + id + "'";
List list_transNum = CommonHelp.getListBySql(sql_transNum, jdbcTemplate);
if (list_transNum.size() == 0) {
transNum = 1;
} else if (list_transNum.size() > 0) {
boolean dr_transNum_2 = false;
for (int j = 0; j < list_transNum.size(); j++) {
Map map = (Map) list_transNum.get(j);
if (map.get("TRANSNUM").toString().equals("2")) {
dr_transNum_2 = true;
break;
}
}
if (dr_transNum_2) {
String delete_bcenter_2 =
"delete gantry_pass_all_bcenter where id='" + id + "' and " +
"TRANSNUM=2";
int delete_center_result_2 = jdbcTemplate.update(delete_bcenter_2);
//int delete_center_result_2=CommonHelp.excuteSql(delete_bcenter_2);
//int delete_center_result_2=new DBUtil().update(delete_bcenter_2);
if (delete_center_result_2 > 0) {
transNum = 2;
} else {
transNum = 2;
}
} else {
boolean dr_transNum_1 = false;
for (int j = 0; j < list_transNum.size(); j++) {
Map map = (Map) list_transNum.get(j);
if (map.get("TRANSNUM").toString().equals("1")) {
dr_transNum_1 = true;
break;
}
}
if (dr_transNum_1) {
String delete_bcenter_1 = "delete gantry_pass_all_bcenter where " +
"id='" + id + "' and TRANSNUM=1";
//int delete_center_result_1=CommonHelp.excuteSql(delete_bcenter_1);
//int delete_center_result_1=new DBUtil().update(delete_bcenter_1);
int delete_center_result_1 = jdbcTemplate.update(delete_bcenter_1);
if (delete_center_result_1 > 0) {
transNum = 1;
} else {
transNum = 2;
}
} else {
transNum = 1;
}
}
String delete_repeat = "delete gantry_pass_all where id='" + id + "' and " +
"TRANSNUM=" + transNum;
//CommonHelp.excuteSql(delete_repeat);
//new DBUtil().update(delete_repeat);
jdbcTemplate.update(delete_repeat);
String update_lis="update gantry_pass_all set bak5=0 where passid='" + passid + "' and PROVINCENUMAFTER="+map_passid.get("PROVINCENUMAFTER").toString()+" and TRANSNUM!=" + transNum;
jdbcTemplate.update(update_lis);
}
//endTime=System.currentTimeMillis();
//LogClass.info(threadId + "第一七步处理用时:" + (endTime - startTime) + ",
// PASSID"+map_passid.get("PASSID").toString());
startTime = System.currentTimeMillis();
String insert_sql = "INSERT INTO gantry_pass_all (SERPROVINCEID, ISSUERID, " +
"ID, PASSID, COUNT, PAYFEE, FEE, DISCOUNTFEE, ENPOINTID, EXPOINTID, " +
"ENTOLLSTATIONNAME, EXTOLLSTATIONNAME, ENTIME, EXTIME, ETCCARDTYPE, " +
"ETCCARDID, OBUID, OBUSIGN, VEHICLETYPE, VEHICLEID, SECTIONID, " +
"SECTIONNAME, TOLLINTERVALID, TOLLINTERVALNAME, TOLLINTERVALFEE, " +
"VEHICLESIGN, DISCOUNTTYPE, PROVINCEDISCOUNTFEE, ORIGINFEE, TRANSNUM," +
" TRANSACTION,HAND_FEEUNIT,HAND_GANTRYID,HAND_FEE,MEDIATYPE,OUTTYPE," +
"ISTIMEOUT,PAYTYPE,multiprovince,ENTOLLSTATIONHEX,ENSTATIONTIME," +
"OBUISSUEID,OBUSN,OBUVEHICLEPLATE,CPUISSUEID,CPUCARDID," +
"CPUVEHICLEPLATE,ENPOINTTYPE,EXPOINTTYPE,UTURN,DEALCOUNT,FEECALC," +
"LOSTUNIT,NOCARD,TB_GANTRYID,VEHICLESEAT,UTURN_PATH,PROVINCENUMAFTER,BAK5) VALUES ('" + serProvinceId + "', '" + issuerId + "', '" + id + "', '" + passid + "', " + list_gantry_pass.size() + ", " + payFee + ", " + fee + ", " + discountFee + ", '" + enPointId + "', '" + exPointId + "', '" + enTollStationName + "', '" + exTollStationName + "', to_date('" + enTime + "','yyyy-MM-dd HH24:mi:ss'), to_date('" + exTime + "','yyyy-MM-dd HH24:mi:ss'), " + etcCardType + ", '" + etcCardId + "', '" + obuId + "', " + obuSign + ", " + vehicleType + ", '" + vehicleId + "', " + CommonHelp.StringToClob(sectionId) + ", " + CommonHelp.StringToClob(sectionName) + ", " + CommonHelp.StringToClob(tollIntervalId) + ", " + CommonHelp.StringToClob(tollIntervalName) + ", " + CommonHelp.StringToClob(tollIntervalFee) + ", '" + vehicleSign + "', " + discountType + ", " + provinceDiscountFee + ", " + originFee + ", " + transNum + ", " + transaction + ",'','',0," + mediaType + "," + outType + "," + isTimeOut + "," + payType + "," + multiprovince + ",'" + enTollStationHex + "',to_date('" + enStationTime + "','yyyy-MM-dd HH24:mi:ss'),'" + issuerId + "','" + obuId + "','" + OBUVEHICLEPLATE + "','" + cpuissuerId + "','" + cpucardid + "','" + CPUVehiclePlate + "'," + ENPOINTTYPE + "," + EXPOINTTYPE + "," + UTURN + "," + DEALCOUNT + "," + FEECALC + "," + LOSTUNIT + "," + NOCARD + ",'" + tb_gantryid + "'," + vehicleSeat + ","+CommonHelp.StringToClob(UTURN_PATH)+","+map_passid.get("PROVINCENUMAFTER").toString()+",1)";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(exTime);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
// String delete_fenyue =
// "delete gantry_pass_all_" + (cal.get(Calendar.MONTH) + 1) + " where " +
// "id='" + id + "'";
// //CommonHelp.excuteSql(delete_fenyue);
// //new DBUtil().update(delete_fenyue);
// jdbcTemplate.update(delete_fenyue);
endTime = System.currentTimeMillis();
//LogClass.info(threadId + "删除分月表用时:" + (endTime - startTime) + ",
// 当前线程共"+list_passid.size()+"数据,处理至"+(i+1)+"条数据,还剩"+(list_passid.size()-i+1)
// +",PASSID"+map_passid.get("PASSID").toString());
startTime = System.currentTimeMillis();
//int insert_result=CommonHelfirstGantryToOutp.excuteSql(insert_sql);
//int insert_result=new DBUtil().update(insert_sql);
int insert_result = jdbcTemplate.update(insert_sql);
if (!(insert_result > 0)) {
LogClass.error("汇总数据插入失败PASSID:" + map_passid.get("PASSID"));
}
endTime = System.currentTimeMillis();
LogClass.info(threadId + "插入汇总结果用时:" + (endTime - startTime) +
",当前线程共" + list_passid.size() + "数据,处理至" + (i + 1) + "条数据,还剩" + (list_passid.size() - i + 1) + ",PASSID" + map_passid.get("PASSID").toString() + ",出口匹配类型:" + (outType == 1 ? "省内出口" : "省外出口") + ",出口ID:" + exPointId + ",门架数据自动匹配完成,门架数据自动审计完成");
startTime = System.currentTimeMillis();
String update_gantry_pass_center = "update /*+rule(gantry_pass_center " +
"INDEX_GANTRY_PASS_CENTER)*/ gantry_pass_center set ishandle=1," +
"Issecond=0,TRANSNUM=" + transNum + ",handletime=to_date('" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()) + "','yyyy-MM-dd HH24:mi:ss') where passid='" + map_passid.get("PASSID").toString() + "' and provincenumafter=" + map_passid.get("PROVINCENUMAFTER").toString();
//CommonHelp.excuteSql(update_gantry_pass_center);
//new DBUtil().update(update_gantry_pass_center);
jdbcTemplate.update(update_gantry_pass_center);
endTime = System.currentTimeMillis();
// LogClass.info(threadId + "更新中间表用时:" + (endTime - startTime) +
// "当前线程共"+list_passid.size()+"数据,处理至"+(i+1)+"条数据,还剩"+(list_passid
// .size()-i+1)+",PASSID"+map_passid.get("PASSID").toString());
} else {
String update_gantry_pass_center = "update /*+rule(gantry_pass_center " +
"INDEX_GANTRY_PASS_CENTER)*/ gantry_pass_center set ishandle=1," +
"Issecond=0,handletime=to_date('" + new SimpleDateFormat("yyyy-MM-dd " +
"HH:mm:ss").format(Calendar.getInstance().getTime()) + "','yyyy-MM-dd" +
" HH24:mi:ss') where passid='" + map_passid.get("PASSID").toString() + "' and provincenumafter=" + map_passid.get("PROVINCENUMAFTER").toString();
//CommonHelp.excuteSql(update_gantry_pass_center);
//new DBUtil().update(update_gantry_pass_center);
jdbcTemplate.update(update_gantry_pass_center);
}
}
}
} else {
String update = "update /*+rule*/ gantry_pass_center set ISHANDLE=1,Issecond=0," +
"ISTIMEOUT=" + isTimeOut + " where passid='" + map_passid.get("PASSID").toString() + "' and provincenumafter=" + map_passid.get("PROVINCENUMAFTER").toString();
//CommonHelp.excuteSql(update);
//new DBUtil().update(update);
jdbcTemplate.update(update);
}
} catch (Exception e) {
LogClass.error("汇总程序异常PASSID:" + ((Map) list_passid.get(i)).get("PASSID").toString() + "," +
"错误信息:" + e.toString());
}
}
// sb_delete.delete(sb_delete.length()-1, sb_delete.length());
// String sql_delete="delete gantry_pass_all_repeat where passid in("+sb_delete.toString()+")";
// CommonHelp.excuteSql(sql_delete);
// sb_delete.delete(0,sb_delete.length());
}
} catch (Exception e) {
LogClass.error("系统异常:" + e.toString());
}
}
}

@ -0,0 +1,144 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class GMAIN_TEST {
public static void main(String[] args) throws Exception {
LogClass.delete("测试数据");
JdbcTemplate jdbcTemplate=new JdbcTemplate(new DBUtil().Hikar_DataSource());
List list_PARTICIPANT = CommonHelp.getListBySql("select * from TB_PARTICIPANT",jdbcTemplate);
List list_LINE_TABLE=CommonHelp.getListBySql("select LINENAME,GBLINEID from line_table",jdbcTemplate);
List list_FEEUNIT_TABLE=CommonHelp.getListBySql("select ID,NAME FROM FEEUNIT_TABLE",jdbcTemplate);
List list_GANTRY_TABLE=CommonHelp.getListBySql("select * from gantry_table",jdbcTemplate);
String sql="select * from gantry_pass_center where passid='014101203823180302389420220616114637'";
//011301200123000511468020220418120750
//020000140102070009234220220422172438
GPA_DATA gpa_data=new GPA_DATA();
gpa_data.GetAllETCData(sql,0,1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE);
// startGPA s=new startGPA();
// String sql_stat="select * from gantry_pass_stat_temp where tradeid='G0065150030002100102022051613200037'";
// statTest(jdbcTemplate,sql_stat);
}
public static void statTest(JdbcTemplate jdbcTemplate,String sql){
try {
//s.UpdateState(Thread.currentThread().getId());
List list=jdbcTemplate.queryForList(sql);
String tollIntervalsId="";
String stano="";
String roadno="";
StringBuilder delete_tradeid=new StringBuilder();
if (list.size()>0){
for (int i = 0; i < list.size(); i++) {
try {
Map map=(Map) list.get(i);
String[] tollIntervalsId_temp=map.get("TOLLINTERVALID")==null?null:map.get("TOLLINTERVALID").toString().split("\\|");
String[] feeGroup_temp=map.get("FEEGROUP")==null?null:map.get("FEEGROUP").toString().split("\\|");
String[] payfeeGroup_temp=map.get("PAYFEEGROUP")==null?null:map.get("PAYFEEGROUP").toString().split("\\|");
String[] specialtype_temp=null;
if (map.get("SPECIALTYPE")!=null){
if (map.get("SPECIALTYPE").toString().replace(" ","").length()>0){
specialtype_temp=map.get("SPECIALTYPE").toString().split("\\|");
}
}
String is_have_gantry_trade_sql="SELECT * FROM gantry_trade_mass where gantryid='" +map.get("GANTRYID").toString() + "' and classdate=TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " +map.get("MEDIATYPE") + " AND VEHICLETYPE = " +map.get("VEHICLETYPE");
List list_trade_ishave=jdbcTemplate.queryForList(is_have_gantry_trade_sql);
String boundarytype_sql = "select boundarytype from gantry_table where id='" + map.get("GANTRYID").toString() + "'";
List boundary=jdbcTemplate.queryForList(boundarytype_sql);
if (boundary.size()>0){
}
int boundarytype=Integer.valueOf(((Map) jdbcTemplate.queryForList(boundarytype_sql).get(0)).get("BOUNDARYTYPE").toString());
if (list_trade_ishave.size()>0){
int feesuccnum=0;
int feefailenum=0;
if (map.get("FEECALCRESULT").toString().equals("0") && map.get("TRADERESULT").toString().equals("0")){
feesuccnum = 1;
}
else {
feefailenum = 1;
}
// JSONObject temp=new JSONObject(((Map) list_trade_ishave.get(0)).get("SPECIALTYPE").toString());
// if (specialtype_temp!=null){
// for (int j = 0; j < specialtype_temp.length; j++) {
// String special_value="";
// if (specil_list.contains(Integer.valueOf(specialtype_temp[j]))){
//
// }
// }
// }
String update_gantry_trade = "update gantry_trade_mass set boundarytype = " + boundarytype + ", feesuccnum = feesuccnum+" + feesuccnum + ", feefailenum = feefailenum+" + feefailenum + ", specialtype = '' where gantryid = '" + map.get("GANTRYID").toString() + "' and classdate = TO_DATE('" +map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') and mediatype = " + map.get("MEDIATYPE") + " and vehicletype = " + map.get("VEHICLETYPE");
jdbcTemplate.update(update_gantry_trade);
}
else {
String insert_gantry_trade= "insert into gantry_trade_mass (gantryid, classdate, mediatype, vehicletype, boundarytype, feesuccnum, feefailenum, specialtype, feelostnum) values ('" +map.get("GANTRYID").toString() + "', TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd'), " +map.get("MEDIATYPE") + ", " + map.get("VEHICLETYPE") + ", " + boundarytype + ", 0, 0, '{}', 0) ";
jdbcTemplate.update(insert_gantry_trade);
}
if (tollIntervalsId_temp!=null && feeGroup_temp!=null && payfeeGroup_temp!=null){
if (tollIntervalsId_temp.length== feeGroup_temp.length && feeGroup_temp.length==payfeeGroup_temp.length){
for (int j = 0; j < tollIntervalsId_temp.length; j++) {
if (tollIntervalsId_temp[j].length()>=16){
tollIntervalsId=tollIntervalsId_temp[j].substring(0,16);
String stano_roadno_sql = "select ostano,oroadno from feeunit_table where id='" + tollIntervalsId + "'";
List stano_roadno_list=jdbcTemplate.queryForList(stano_roadno_sql);
if (stano_roadno_list.size()>0){
stano=((Map)stano_roadno_list.get(0)).get("OSTANO").toString();
roadno=((Map)stano_roadno_list.get(0)).get("OROADNO").toString();
}
else {
stano="0";
roadno="0";
}
String is_have_sql = "SELECT 1 FROM DUAL WHERE EXISTS (SELECT * FROM gantry_stat where FEEUNITID='" + tollIntervalsId + "' and classdate=TO_DATE('" +map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " +map.get("MEDIATYPE") + " AND VEHTYPE = " +map.get("VEHICLETYPE") + " AND ROADNO = " + roadno + " and STANO=" + stano + ")";
List list_ishave=jdbcTemplate.queryForList(is_have_sql);
if (list_ishave.size()>0){
String update_sql = "UPDATE GANTRY_STAT SET VEHCOUNT = VEHCOUNT + 1, CASH = TO_NUMBER(CASH) +TO_NUMBER(" + (payfeeGroup_temp[j].replace(" ","").length() == 0 ? "0" : payfeeGroup_temp[j]) + "), INCASH = TO_NUMBER(INCASH) +TO_NUMBER(" + (feeGroup_temp[j].replace(" ","").length() == 0 ? "0" : feeGroup_temp[j]) + ") where FEEUNITID='" + tollIntervalsId + "' and classdate=TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " + map.get("MEDIATYPE") + " AND VEHTYPE = " + map.get("VEHICLETYPE") + " AND ROADNO = " + roadno;
jdbcTemplate.update(update_sql);
}
else {
String insert_sql = "INSERT INTO GANTRY_STAT(ROADNO,STANO,CLASSDATE,FEEUNITID,MEDIATYPE, VEHTYPE,VEHCLASS,SPECIALTYPE,AXLECOUNT,VEHCOUNT,TRADERESULT,HOLIDAYSTATE,VALIDSTATUS,CASH,INCASH,FEESUMLOCALAFTER,BACKUP1,BACKUP2,BACKUP3,BACKUP4,DATEMARK) VALUES(" + roadno + ", " + stano + ", TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd'), '" + tollIntervalsId + "', " + map.get("MEDIATYPE") + "," + map.get("VEHICLETYPE") + ", 0, 0, 2, 1, 0, 0, 0," + (payfeeGroup_temp[j].replace(" ","").length() == 0 ? "0" : payfeeGroup_temp[j]) + ", " + (feeGroup_temp[j].replace(" ","").length() == 0 ? "0" : feeGroup_temp[j]) + ", 0, 0, 0, '0','0', SYSDATE)";
jdbcTemplate.update(insert_sql);
}
}
}
}
}
String delete_sql="delete gantry_pass_stat_temp where tradeid='" +map.get("TRADEID") + "' ";
jdbcTemplate.update(delete_sql);
}
catch (Exception e){
LogClass.error("预分账错误日志:"+e.toString()+","+((Map) list.get(i)).get("TRADEID"));
}
}
}
Thread.sleep(1000*30);
}
catch (Exception e){
LogClass.error("预拆分错误"+e.toString());
}
}
}

@ -0,0 +1,2 @@
[2022-06-24 11:01:39.107] DL 日志
[2022-06-24 11:01:39.107] 1插入汇总结果用时25,当前线程共1数据,处理至1条数据还剩2,PASSID014101203823180302389420220616114637,出口匹配类型:省内出口,出口ID:G001815001000720010,门架数据自动匹配完成,门架数据自动审计完成

@ -0,0 +1,60 @@
package com.trkf.feemoduleservice;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
/**
* <p>GetStaFee complex type的 Java 类。
*
* <p>以下模式片段指定包含在此类中的预期内容。
*
* <pre>
* &lt;complexType name="GetStaFee">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "GetStaFee", propOrder = {
"arg0"
})
public class GetStaFee {
protected String arg0;
/**
* 获取arg0属性的值。
*
* @return
* possible object is
* {@link String }
*
*/
public String getArg0() {
return arg0;
}
/**
* 设置arg0属性的值。
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setArg0(String value) {
this.arg0 = value;
}
}

@ -0,0 +1,62 @@
package com.trkf.feemoduleservice;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>GetStaFeeResponse complex type的 Java 类。
*
* <p>以下模式片段指定包含在此类中的预期内容。
*
* <pre>
* &lt;complexType name="GetStaFeeResponse">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "GetStaFeeResponse", propOrder = {
"_return"
})
public class GetStaFeeResponse {
@XmlElement(name = "return")
protected String _return;
/**
* 获取return属性的值。
*
* @return
* possible object is
* {@link String }
*
*/
public String getReturn() {
return _return;
}
/**
* 设置return属性的值。
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setReturn(String value) {
this._return = value;
}
}

@ -0,0 +1,19 @@
<component name="ArtifactManager">
<artifact type="jar" name="GANTRY_PASS_ALL:jar">
<output-path>$PROJECT_DIR$/out/artifacts/GANTRY_PASS_ALL_jar</output-path>
<root id="archive" name="GANTRY_PASS_ALL.jar">
<element id="module-output" name="GANTRY_PASS_ALL" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/ojdbc6.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/dom4j-2.0.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/HikariCP-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/fastjson-1.2.83.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/slf4j-api-1.7.25.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/slf4j-simple-1.7.25.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-tx-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-jcl-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-core-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-jdbc-5.2.16.RELEASE.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/src/lib/spring-beans-5.2.16.RELEASE.jar" path-in-jar="/" />
</root>
</artifact>
</component>

@ -0,0 +1,583 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="GANTRY_PASS_ALL:jar" />
</artifacts-to-build>
</component>
<component name="ChangeListManager">
<list default="true" id="7d66f44e-e66a-4d87-8cad-4d6168a6de00" name="Default Changelist" comment="" />
<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="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>axlecount</find>
<find>vehi</find>
<find>VEHICLETYPE</find>
</findStrings>
</component>
<component name="ProjectFrameBounds" extendedState="7">
<option name="x" value="-11" />
<option name="y" value="-11" />
<option name="width" value="2582" />
<option name="height" value="1550" />
</component>
<component name="ProjectId" id="21u3F9wGrmuivsGDZVr9vRejz9h" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.23103449" />
<property name="settings.editor.selected.configurable" value="editor.preferences.fonts.default" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\trkf-java\GANTRY_PASS_ALL\src\lib" />
<recent name="E:\trkf-java\GANTRY_PASS_ALL\src\lib" />
</key>
</component>
<component name="RunManager" selected="Application.GMAIN_TEST">
<configuration name="GAMIN" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GAMIN" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GMAIN_TEST" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GMAIN_TEST" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GPA_MAIN" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GPA_MAIN" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.33" ALTERNATIVE_JRE_ENABLED="false">
<option name="UPDATING_POLICY" value="restart-server" />
<deployment />
<server-settings>
<option name="BASE_DIRECTORY_NAME" value="_GANTRY_PASS_ALL" />
</server-settings>
<predefined_log_file enabled="true" id="Tomcat" />
<predefined_log_file enabled="true" id="Tomcat Catalina" />
<predefined_log_file id="Tomcat Manager" />
<predefined_log_file id="Tomcat Host Manager" />
<predefined_log_file id="Tomcat Localhost Access" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="1808" />
</RunnerSettings>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<list>
<item itemvalue="Application.GAMIN" />
<item itemvalue="Application.GMAIN_TEST" />
<item itemvalue="Application.GPA_MAIN" />
</list>
<recent_temporary>
<list>
<item itemvalue="Application.GMAIN_TEST" />
<item itemvalue="Application.GAMIN" />
<item itemvalue="Application.GPA_MAIN" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration">
<configuration>C:\Users\90736\AppData\Roaming\Subversion</configuration>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="7d66f44e-e66a-4d87-8cad-4d6168a6de00" name="Default Changelist" comment="" />
<created>1638777038918</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1638777038918</updated>
<workItem from="1640508428515" duration="1855000" />
<workItem from="1640833236741" duration="60000" />
<workItem from="1641886125252" duration="1321000" />
<workItem from="1641968513174" duration="1223000" />
<workItem from="1642566479500" duration="2668000" />
<workItem from="1645168523384" duration="926000" />
<workItem from="1645411909977" duration="4143000" />
<workItem from="1645492485004" duration="2323000" />
<workItem from="1645680948060" duration="2891000" />
<workItem from="1646015579988" duration="6866000" />
<workItem from="1646096405338" duration="610000" />
<workItem from="1646098082109" duration="1761000" />
<workItem from="1646184973668" duration="53000" />
<workItem from="1646203382206" duration="3950000" />
<workItem from="1646270518464" duration="1656000" />
<workItem from="1646363428531" duration="1205000" />
<workItem from="1646878784393" duration="6808000" />
<workItem from="1646960140570" duration="1805000" />
<workItem from="1647225665260" duration="1812000" />
<workItem from="1647310167360" duration="1585000" />
<workItem from="1647397536468" duration="6156000" />
<workItem from="1647491326374" duration="2162000" />
<workItem from="1647566106279" duration="1840000" />
<workItem from="1647827020713" duration="27942000" />
<workItem from="1648263514254" duration="1862000" />
<workItem from="1648433603236" duration="798000" />
<workItem from="1648535077068" duration="3882000" />
<workItem from="1648783607088" duration="3297000" />
<workItem from="1648891611618" duration="905000" />
<workItem from="1649212203189" duration="2918000" />
<workItem from="1649476191818" duration="2917000" />
<workItem from="1649811107367" duration="2396000" />
<workItem from="1650072692766" duration="7560000" />
<workItem from="1650251681066" duration="7483000" />
<workItem from="1650360035802" duration="12299000" />
<workItem from="1651040744961" duration="1190000" />
<workItem from="1651895934112" duration="21749000" />
<workItem from="1652491329405" duration="5930000" />
<workItem from="1652857323527" duration="595000" />
<workItem from="1652858062376" duration="2397000" />
<workItem from="1653183221357" duration="4100000" />
<workItem from="1653373370962" duration="2553000" />
<workItem from="1653466506686" duration="1705000" />
<workItem from="1653483407573" duration="318000" />
<workItem from="1653526520198" duration="2877000" />
<workItem from="1653613466857" duration="2454000" />
<workItem from="1653789187496" duration="1195000" />
<workItem from="1653903966603" duration="63000" />
<workItem from="1653915078245" duration="1651000" />
<workItem from="1653986717567" duration="607000" />
<workItem from="1654000415905" duration="541000" />
<workItem from="1654005843264" duration="29000" />
<workItem from="1654590006926" duration="1261000" />
<workItem from="1654652194895" duration="2732000" />
<workItem from="1654739134008" duration="1281000" />
<workItem from="1655693337535" duration="1663000" />
<workItem from="1655885459736" duration="1278000" />
<workItem from="1655967696058" duration="2273000" />
<workItem from="1656380714817" duration="7000" />
<workItem from="1656381141692" duration="2210000" />
<workItem from="1656919173518" duration="40000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="VcsManagerConfiguration">
<option name="LAST_COMMIT_MESSAGE" value="" />
</component>
<component name="WindowStateProjectService">
<state x="630" y="387" key="#Tomcat_Server" timestamp="1654000459896">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="630" y="387" key="#Tomcat_Server/0.0.1707.1019@0.0.1707.1019" timestamp="1654000459896" />
<state x="309" y="165" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1654000486771">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="309" y="165" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1707.1019@0.0.1707.1019" timestamp="1654000486771" />
<state x="527" y="215" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1653376517196">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="527" y="215" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653376517196" />
<state x="578" y="148" key="#com.intellij.j2ee.appServerIntegrations.ApplicationServersConfigurable" timestamp="1654000485636">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="578" y="148" key="#com.intellij.j2ee.appServerIntegrations.ApplicationServersConfigurable/0.0.1707.1019@0.0.1707.1019" timestamp="1654000485636" />
<state x="662" y="383" key="#com.intellij.ws.actions.GenerateJavaFromWsdlAction$1" timestamp="1650607051037">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="662" y="383" key="#com.intellij.ws.actions.GenerateJavaFromWsdlAction$1/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1650607051037" />
<state x="707" y="422" width="417" height="286" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog" timestamp="1652686866690">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="707" y="422" width="417" height="286" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1652686866690" />
<state x="3355" y="427" width="330" height="234" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652341274285" />
<state width="554" height="577" key="DebuggerActiveHint" timestamp="1653358995499">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="498" height="462" key="DebuggerActiveHint/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648535483848" />
<state width="498" height="466" key="DebuggerActiveHint/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433771274" />
<state width="554" height="577" key="DebuggerActiveHint/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358995499" />
<state width="624" height="585" key="DebuggerActiveHint/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340686258" />
<state width="554" height="577" key="DebuggerActiveHint/0.0.1707.1019@0.0.1707.1019" timestamp="1648783930570" />
<state x="610" y="189" key="FileChooserDialogImpl" timestamp="1656919206454">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="610" y="189" key="FileChooserDialogImpl/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919206454" />
<state x="610" y="189" key="FileChooserDialogImpl/0.0.1707.1019@0.0.1707.1019" timestamp="1654000656434" />
<state width="1663" height="326" key="GridCell.Tab.0.bottom" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.bottom/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916502" />
<state width="1493" height="178" key="GridCell.Tab.0.bottom/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.bottom/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.bottom/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.bottom/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.0.center" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.center/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916501" />
<state width="1493" height="178" key="GridCell.Tab.0.center/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.center/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.center/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.center/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.0.left" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.left/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916501" />
<state width="1493" height="178" key="GridCell.Tab.0.left/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.left/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.left/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.left/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.0.right" timestamp="1653358961982">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.0.right/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537916501" />
<state width="1493" height="178" key="GridCell.Tab.0.right/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433628634" />
<state width="1663" height="326" key="GridCell.Tab.0.right/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358961982" />
<state width="1877" height="333" key="GridCell.Tab.0.right/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="339" key="GridCell.Tab.0.right/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.bottom" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.bottom/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920006" />
<state width="1493" height="178" key="GridCell.Tab.1.bottom/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.bottom/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.bottom/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.bottom/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.center" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.center/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920005" />
<state width="1493" height="178" key="GridCell.Tab.1.center/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.center/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.center/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.center/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.left" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.left/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920005" />
<state width="1493" height="178" key="GridCell.Tab.1.left/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.left/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.left/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.left/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state width="1663" height="326" key="GridCell.Tab.1.right" timestamp="1653358963686">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1493" height="175" key="GridCell.Tab.1.right/0.0.1536.816/1920.0.1920.1032@0.0.1536.816" timestamp="1648537920006" />
<state width="1493" height="178" key="GridCell.Tab.1.right/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1648433634520" />
<state width="1663" height="326" key="GridCell.Tab.1.right/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653358963686" />
<state width="1877" height="333" key="GridCell.Tab.1.right/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="339" key="GridCell.Tab.1.right/0.0.1707.1019@0.0.1707.1019" timestamp="1648892522968" />
<state x="277" y="0" key="SettingsEditor" timestamp="1656381219498">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="277" y="0" key="SettingsEditor/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656381219498" />
<state x="277" y="0" key="SettingsEditor/0.0.1707.1019@0.0.1707.1019" timestamp="1648783781051" />
<state x="373" y="145" key="new project wizard" timestamp="1654000650742">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="198" y="27" key="new project wizard/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1652231521669" />
<state x="373" y="145" key="new project wizard/0.0.1707.1019@0.0.1707.1019" timestamp="1654000650742" />
<state x="684" y="301" key="svn.repositoryBrowser" timestamp="1656919195934">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="684" y="301" key="svn.repositoryBrowser/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919195934" />
<state x="663" y="411" key="svn.upgradeDialog" timestamp="1656919208634">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="663" y="411" key="svn.upgradeDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919208634" />
<state x="564" y="373" key="svn4idea.checkout.options" timestamp="1656919207469">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="564" y="373" key="svn4idea.checkout.options/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919207469" />
<state x="567" y="272" key="svn4idea.import.options" timestamp="1656919194227">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="567" y="272" key="svn4idea.import.options/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919194227" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>20</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/startGPA.java</url>
<line>109</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>183</line>
<option name="timeStamp" value="7" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>285</line>
<option name="timeStamp" value="9" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>340</line>
<option name="timeStamp" value="10" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>735</line>
<option name="timeStamp" value="12" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>738</line>
<option name="timeStamp" value="13" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>157</line>
<option name="timeStamp" value="14" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>157</line>
<option name="timeStamp" value="15" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>384</line>
<option name="timeStamp" value="16" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>210</line>
<option name="timeStamp" value="17" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>124</line>
<option name="timeStamp" value="18" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1216</line>
<option name="timeStamp" value="19" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>200</line>
<option name="timeStamp" value="20" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>495</line>
<option name="timeStamp" value="24" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1645</line>
<option name="timeStamp" value="25" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1739</line>
<option name="timeStamp" value="26" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1709</line>
<option name="timeStamp" value="27" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GetGantryStat.java</url>
<line>22</line>
<option name="timeStamp" value="28" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GMAIN_TEST.java</url>
<line>34</line>
<option name="timeStamp" value="29" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1895</line>
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
<watch expression="thread.isAlive()" />
<watch expression="sb_json" />
<watch expression="temp_json" language="JAVA" />
<watch expression="result_json" />
<watch expression="map.get(&quot;CARDFEESUMAFTER&quot;).toString()" />
<watch expression="isListLostGantry(list)" />
<watch expression="sb_json.toString()" />
</configuration>
</watches-manager>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<last-edited>GANTRY_PASS_ALL:jar</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.23103449" />
<option value="0.5" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>GANTRY_PASS_ALL</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.23103449" />
<option value="0.6" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>lib</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

@ -0,0 +1,2 @@
@javax.xml.bind.annotation.XmlSchema(namespace = "http://FeeModuleService.trkf.com/")
package com.trkf.feemoduleservice;

@ -0,0 +1,602 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="GANTRY_PASS_ALL:jar" />
</artifacts-to-build>
</component>
<component name="ChangeListManager">
<list default="true" id="7d66f44e-e66a-4d87-8cad-4d6168a6de00" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/codeStyles" afterDir="true" />
<change afterPath="$PROJECT_DIR$/.idea/codeStyles/codeStyleConfig.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/artifacts/GANTRY_PASS_ALL_jar/GANTRY_PASS_ALL.jar" beforeDir="false" afterPath="$PROJECT_DIR$/out/artifacts/GANTRY_PASS_ALL_jar/GANTRY_PASS_ALL.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/GPA/GAMIN.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GPA/GAMIN.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/GPA/GMAIN_TEST.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GPA/GMAIN_TEST.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/GPA/startGPA.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GPA/startGPA.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="Class" />
</list>
</option>
</component>
<component name="ProjectId" id="21u3F9wGrmuivsGDZVr9vRejz9h" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.23103449" />
<property name="settings.editor.selected.configurable" value="editor.preferences.fonts.default" />
<property name="vue.rearranger.settings.migration" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\trkf-java\GANTRY_PASS_ALL\src\lib" />
<recent name="E:\trkf-java\GANTRY_PASS_ALL\src\lib" />
</key>
</component>
<component name="RunManager" selected="Application.GAMIN">
<configuration name="GAMIN" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GAMIN" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GMAIN_TEST" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GMAIN_TEST" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GPA_MAIN" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="GPA.GPA_MAIN" />
<module name="GANTRY_PASS_ALL" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="GPA.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.33" ALTERNATIVE_JRE_ENABLED="false">
<option name="UPDATING_POLICY" value="restart-server" />
<deployment />
<server-settings>
<option name="BASE_DIRECTORY_NAME" value="_GANTRY_PASS_ALL" />
</server-settings>
<predefined_log_file enabled="true" id="Tomcat" />
<predefined_log_file enabled="true" id="Tomcat Catalina" />
<predefined_log_file id="Tomcat Manager" />
<predefined_log_file id="Tomcat Host Manager" />
<predefined_log_file id="Tomcat Localhost Access" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="1808" />
</RunnerSettings>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<list>
<item itemvalue="Application.GAMIN" />
<item itemvalue="Application.GMAIN_TEST" />
<item itemvalue="Application.GPA_MAIN" />
</list>
<recent_temporary>
<list>
<item itemvalue="Application.GAMIN" />
<item itemvalue="Application.GMAIN_TEST" />
<item itemvalue="Application.GPA_MAIN" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration" cleanupOnStartRun="true">
<configuration>C:\Users\90736\AppData\Roaming\Subversion</configuration>
<supportedVersion>125</supportedVersion>
</component>
<component name="SvnFileUrlMappingImpl">
<option name="myMappingRoots">
<list>
<SvnCopyRootSimple>
<option name="myVcsRoot" value="D:\trkf-java\GANTRY_PASS_ALL" />
<option name="myCopyRoot" value="D:\trkf-java\GANTRY_PASS_ALL" />
</SvnCopyRootSimple>
</list>
</option>
<option name="myMoreRealMappingRoots">
<list>
<SvnCopyRootSimple>
<option name="myVcsRoot" value="D:\trkf-java\GANTRY_PASS_ALL" />
<option name="myCopyRoot" value="D:\trkf-java\GANTRY_PASS_ALL" />
</SvnCopyRootSimple>
</list>
</option>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="7d66f44e-e66a-4d87-8cad-4d6168a6de00" name="Default Changelist" comment="" />
<created>1638777038918</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1638777038918</updated>
<workItem from="1640508428515" duration="1855000" />
<workItem from="1640833236741" duration="60000" />
<workItem from="1641886125252" duration="1321000" />
<workItem from="1641968513174" duration="1223000" />
<workItem from="1642566479500" duration="2668000" />
<workItem from="1645168523384" duration="926000" />
<workItem from="1645411909977" duration="4143000" />
<workItem from="1645492485004" duration="2323000" />
<workItem from="1645680948060" duration="2891000" />
<workItem from="1646015579988" duration="6866000" />
<workItem from="1646096405338" duration="610000" />
<workItem from="1646098082109" duration="1761000" />
<workItem from="1646184973668" duration="53000" />
<workItem from="1646203382206" duration="3950000" />
<workItem from="1646270518464" duration="1656000" />
<workItem from="1646363428531" duration="1205000" />
<workItem from="1646878784393" duration="6808000" />
<workItem from="1646960140570" duration="1805000" />
<workItem from="1647225665260" duration="1812000" />
<workItem from="1647310167360" duration="1585000" />
<workItem from="1647397536468" duration="6156000" />
<workItem from="1647491326374" duration="2162000" />
<workItem from="1647566106279" duration="1840000" />
<workItem from="1647827020713" duration="27942000" />
<workItem from="1648263514254" duration="1862000" />
<workItem from="1648433603236" duration="798000" />
<workItem from="1648535077068" duration="3882000" />
<workItem from="1648783607088" duration="3297000" />
<workItem from="1648891611618" duration="905000" />
<workItem from="1649212203189" duration="2918000" />
<workItem from="1649476191818" duration="2917000" />
<workItem from="1649811107367" duration="2396000" />
<workItem from="1650072692766" duration="7560000" />
<workItem from="1650251681066" duration="7483000" />
<workItem from="1650360035802" duration="12299000" />
<workItem from="1651040744961" duration="1190000" />
<workItem from="1651895934112" duration="21749000" />
<workItem from="1652491329405" duration="5930000" />
<workItem from="1652857323527" duration="595000" />
<workItem from="1652858062376" duration="2397000" />
<workItem from="1653183221357" duration="4100000" />
<workItem from="1653373370962" duration="2553000" />
<workItem from="1653466506686" duration="1705000" />
<workItem from="1653483407573" duration="318000" />
<workItem from="1653526520198" duration="2877000" />
<workItem from="1653613466857" duration="2454000" />
<workItem from="1653789187496" duration="1195000" />
<workItem from="1653903966603" duration="63000" />
<workItem from="1653915078245" duration="1651000" />
<workItem from="1653986717567" duration="607000" />
<workItem from="1654000415905" duration="541000" />
<workItem from="1654005843264" duration="29000" />
<workItem from="1654590006926" duration="1261000" />
<workItem from="1654652194895" duration="2732000" />
<workItem from="1654739134008" duration="1281000" />
<workItem from="1655693337535" duration="1663000" />
<workItem from="1655885459736" duration="1278000" />
<workItem from="1655967696058" duration="2273000" />
<workItem from="1656380714817" duration="7000" />
<workItem from="1656381141692" duration="2210000" />
<workItem from="1656919173518" duration="40000" />
<workItem from="1656919215382" duration="23000" />
<workItem from="1656925762712" duration="1830000" />
<workItem from="1656937350732" duration="711000" />
<workItem from="1657004211077" duration="631000" />
<workItem from="1657423777193" duration="1189000" />
<workItem from="1657426142170" duration="664000" />
<workItem from="1658025843076" duration="5636000" />
</task>
<task id="LOCAL-00001">
<created>1656919222519</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1656919222519</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="VcsManagerConfiguration">
<option name="LAST_COMMIT_MESSAGE" value="" />
</component>
<component name="WindowStateProjectService">
<state x="630" y="387" key="#Tomcat_Server" timestamp="1654000459896">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="630" y="387" key="#Tomcat_Server/0.0.1707.1019@0.0.1707.1019" timestamp="1654000459896" />
<state x="309" y="165" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1654000486771">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="309" y="165" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1707.1019@0.0.1707.1019" timestamp="1654000486771" />
<state x="527" y="215" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1653376517196">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="527" y="215" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1653376517196" />
<state x="578" y="148" key="#com.intellij.j2ee.appServerIntegrations.ApplicationServersConfigurable" timestamp="1654000485636">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="578" y="148" key="#com.intellij.j2ee.appServerIntegrations.ApplicationServersConfigurable/0.0.1707.1019@0.0.1707.1019" timestamp="1654000485636" />
<state x="662" y="383" key="#com.intellij.ws.actions.GenerateJavaFromWsdlAction$1" timestamp="1650607051037">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="662" y="383" key="#com.intellij.ws.actions.GenerateJavaFromWsdlAction$1/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1650607051037" />
<state x="707" y="422" width="417" height="286" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog" timestamp="1652686866690">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="707" y="422" width="417" height="286" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1652686866690" />
<state x="3355" y="427" width="330" height="234" key="#com.intellij.ws.actions.GenerateWsdlFromJavaDialog/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652341274285" />
<state x="463" y="95" key="CommitChangelistDialog2" timestamp="1656919221783">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="463" y="95" key="CommitChangelistDialog2/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919221783" />
<state width="554" height="577" key="DebuggerActiveHint" timestamp="1658030316308">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="554" height="577" key="DebuggerActiveHint/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030316308" />
<state width="624" height="585" key="DebuggerActiveHint/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340686258" />
<state x="610" y="189" key="FileChooserDialogImpl" timestamp="1656941710454">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="610" y="189" key="FileChooserDialogImpl/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656941710454" />
<state x="610" y="189" key="FileChooserDialogImpl/0.0.1707.1019@0.0.1707.1019" timestamp="1654000656434" />
<state width="1663" height="275" key="GridCell.Tab.0.bottom" timestamp="1658030981489">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="275" key="GridCell.Tab.0.bottom/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030981489" />
<state width="1877" height="333" key="GridCell.Tab.0.bottom/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="275" key="GridCell.Tab.0.center" timestamp="1658030981489">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="275" key="GridCell.Tab.0.center/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030981489" />
<state width="1877" height="333" key="GridCell.Tab.0.center/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="275" key="GridCell.Tab.0.left" timestamp="1658030981489">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="275" key="GridCell.Tab.0.left/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030981489" />
<state width="1877" height="333" key="GridCell.Tab.0.left/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="275" key="GridCell.Tab.0.right" timestamp="1658030981489">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="275" key="GridCell.Tab.0.right/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030981489" />
<state width="1877" height="333" key="GridCell.Tab.0.right/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340664192" />
<state width="1663" height="328" key="GridCell.Tab.1.bottom" timestamp="1658030318541">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="328" key="GridCell.Tab.1.bottom/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030318541" />
<state width="1877" height="333" key="GridCell.Tab.1.bottom/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="328" key="GridCell.Tab.1.center" timestamp="1658030318541">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="328" key="GridCell.Tab.1.center/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030318541" />
<state width="1877" height="333" key="GridCell.Tab.1.center/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="328" key="GridCell.Tab.1.left" timestamp="1658030318541">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="328" key="GridCell.Tab.1.left/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030318541" />
<state width="1877" height="333" key="GridCell.Tab.1.left/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state width="1663" height="328" key="GridCell.Tab.1.right" timestamp="1658030318541">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state width="1663" height="328" key="GridCell.Tab.1.right/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658030318541" />
<state width="1877" height="333" key="GridCell.Tab.1.right/0.0.1707.1019/2560.0.1920.1032@2560.0.1920.1032" timestamp="1652340666040" />
<state x="277" y="0" key="SettingsEditor" timestamp="1656381219498">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="277" y="0" key="SettingsEditor/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656381219498" />
<state x="373" y="145" key="new project wizard" timestamp="1654000650742">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="198" y="27" key="new project wizard/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1652231521669" />
<state x="373" y="145" key="new project wizard/0.0.1707.1019@0.0.1707.1019" timestamp="1654000650742" />
<state x="684" y="301" key="svn.repositoryBrowser" timestamp="1658031612528">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="684" y="301" key="svn.repositoryBrowser/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1658031612528" />
<state x="663" y="411" key="svn.upgradeDialog" timestamp="1656919208634">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="663" y="411" key="svn.upgradeDialog/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919208634" />
<state x="564" y="373" key="svn4idea.checkout.options" timestamp="1656919207469">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="564" y="373" key="svn4idea.checkout.options/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919207469" />
<state x="567" y="272" key="svn4idea.import.options" timestamp="1656919194227">
<screen x="0" y="0" width="1707" height="1019" />
</state>
<state x="567" y="272" key="svn4idea.import.options/0.0.1707.1019/2560.0.1920.1032@0.0.1707.1019" timestamp="1656919194227" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>20</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/startGPA.java</url>
<line>109</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>183</line>
<option name="timeStamp" value="7" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>285</line>
<option name="timeStamp" value="9" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>340</line>
<option name="timeStamp" value="10" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>735</line>
<option name="timeStamp" value="12" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>738</line>
<option name="timeStamp" value="13" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>157</line>
<option name="timeStamp" value="14" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>157</line>
<option name="timeStamp" value="15" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>384</line>
<option name="timeStamp" value="16" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>210</line>
<option name="timeStamp" value="17" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>124</line>
<option name="timeStamp" value="18" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1216</line>
<option name="timeStamp" value="19" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>200</line>
<option name="timeStamp" value="20" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GPA_DATA.java</url>
<line>495</line>
<option name="timeStamp" value="24" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1645</line>
<option name="timeStamp" value="25" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1739</line>
<option name="timeStamp" value="26" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1709</line>
<option name="timeStamp" value="27" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GetGantryStat.java</url>
<line>22</line>
<option name="timeStamp" value="28" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/GMAIN_TEST.java</url>
<line>70</line>
<option name="timeStamp" value="29" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/GPA/CommonHelp.java</url>
<line>1895</line>
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
<watch expression="thread.isAlive()" />
<watch expression="sb_json" />
<watch expression="temp_json" language="JAVA" />
<watch expression="result_json" />
<watch expression="map.get(&quot;CARDFEESUMAFTER&quot;).toString()" />
<watch expression="isListLostGantry(list)" />
<watch expression="sb_json.toString()" />
<watch expression="stringIntegerMap." language="JAVA" />
</configuration>
</watches-manager>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<last-edited>GANTRY_PASS_ALL:jar</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.23103449" />
<option value="0.5" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>GANTRY_PASS_ALL</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.23103449" />
<option value="0.6" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>lib</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

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

@ -0,0 +1,3 @@
[2022-06-20 10:49:24.940] DL 日志
[2022-06-20 10:49:24.940] 1passid查询用时15,查询结果1条
[2022-06-20 10:52:35.524] 1passid查询用时7,查询结果1条

@ -0,0 +1,300 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.text.SimpleDateFormat;
import java.util.*;
public class startGPA {
private final int MAX_ERROR_MSG=1000;
private List<Thread> stop_list;
private List<State> state_list;
private List<String> ErrorMsg_list;
{
stop_list=new ArrayList<>();
state_list=new ArrayList<>();
ErrorMsg_list=new ArrayList<>();
}
public static class State{
long ThreadId;
long StateUpdateTime;
}
public synchronized void UpdateState(long ThreadId){
for (int i = 0; i < state_list.size(); i++) {
State s=state_list.get(i);
if (s.ThreadId==ThreadId){
s.StateUpdateTime=System.currentTimeMillis();
state_list.set(i,s);
}
}
}
public synchronized Date GetRunState(){
long minTime=0;
for (int i = 0; i < state_list.size(); i++) {
State s=state_list.get(i);
if (s.StateUpdateTime < minTime || minTime==0){
minTime=s.StateUpdateTime;
}
}
return new Date(minTime);
}
public void WriteLog(String info){
}
public synchronized boolean init(String jarPath){
WriteLog("软件启动");
return true;
}
boolean runAble=true;
public synchronized void stop(){
runAble=false;
for (int i = 0; i < stop_list.size(); i++) {
Thread thread=stop_list.get(i);
try {
LogClass.debug("开始停止"+thread);
thread.join(1000);
LogClass.debug("已停止"+thread);
}
catch (Exception e){
WriteLog("停止线程错误:"+e.getMessage());
LogClass.debug("程序停止异常"+e.getMessage());
}
}
stop_list.clear();
state_list.clear();
WriteLog("线程停止");
}
public synchronized String[] GetErrorLog(){
int MsgCount=ErrorMsg_list.size();
if (MsgCount>MAX_ERROR_MSG){
MsgCount=MAX_ERROR_MSG;
}
String[] ErrorLogs=new String[MsgCount];
for (int i = 0; i < MsgCount; i++) {
ErrorLogs[i]=ErrorMsg_list.get(i);
}
for (int i = 0; i < MsgCount; i++) {
ErrorMsg_list.remove(0);
}
return ErrorLogs;
}
public synchronized void SetErrorLog(int Type,int MsgCode,String info){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String ErrorInfo="{\"TYPE\":"+String.valueOf(Type)+",\"MSGCODE\":"+String.valueOf(MsgCode)+",\"MSG\":"+String.valueOf(info)+",\"DT\":\""+sdf.format(new Date())+"\"}";
ErrorMsg_list.add(ErrorInfo);
while (ErrorMsg_list.size()>MAX_ERROR_MSG){
ErrorMsg_list.remove(0);
}
}
public synchronized void exit(){
WriteLog("软件退出");
}
public synchronized List<Thread> startUp() throws Exception {
return Main_void("1");
}
private List<Thread> Main_voidTest(String dbType) throws Exception {
try {
JdbcTemplate jdbcTemplate=new JdbcTemplate(new DBUtil().Hikar_DataSource());
String sql4_1 = "delete gantry_pass_center where ROUND(TO_NUMBER(sysdate - handletime))>25";
deleteCenter deleteC=new deleteCenter(jdbcTemplate,sql4_1,runAble,this);
Thread thread=new Thread(deleteC);
thread.start();//true
stop_list.add(thread);//false
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
for (int i = 0; i < stop_list.size(); i++) {
LogClass.error("线程ID:"+stop_list.get(i).getId()+"线程状态:"+stop_list.get(i).isAlive());
}
}
catch (Exception e){
e.printStackTrace();
}
finally {
return stop_list;
}
}
private JdbcTemplate jdbcTemplate;
{
try {
jdbcTemplate = new JdbcTemplate(new DBUtil().Hikar_DataSource());
} catch (Exception e) {
e.printStackTrace();
}
}
private List<Thread> Main_void(String dbType) throws Exception {
boolean flag=true;
//List<Thread> starup_list=new ArrayList<>();
stop_list.clear();
runAble=true;
try {
List list_PARTICIPANT = CommonHelp.getListBySql("select * from TB_PARTICIPANT",jdbcTemplate);
List list_LINE_TABLE=CommonHelp.getListBySql("select LINENAME,GBLINEID from line_table",jdbcTemplate);
List list_FEEUNIT_TABLE=CommonHelp.getListBySql("select ID,NAME FROM FEEUNIT_TABLE",jdbcTemplate);
List list_GANTRY_TABLE=CommonHelp.getListBySql("select * from gantry_table",jdbcTemplate);
int GPA_THREAD_COUNT_1=7;
//正常数据处理线程4个
if (dbType.equals("1")) {//oracle
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and ora_hash(passid,"+(GPA_THREAD_COUNT_1-1)+")="+i;
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
} else if (dbType.equals("2")) {//DM
for (int i = 0; i < GPA_THREAD_COUNT_1; i++) {
String sql="select * from gantry_pass_center where ishandle=0 and isout=1 and issecond=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut") + " and DM_HASH(passid)%"+GPA_THREAD_COUNT_1+"="+i+" and rownum<=1500";
Thread thread=new GetAllData((i+11),0,sql,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//超时数据处理线程3个
if (dbType.equals("1")) {//oracle
//超时第一种情况--有出口但是累计金额不相等的
String sql2_1_1 = "select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
List<String> listTemp=new ArrayList<>();
listTemp.add(sql2_1_1);
listTemp.add(sql2_2_1);
listTemp.add(sql2_3_1);
for (int i = 0; i < listTemp.size(); i++) {
Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
} else if (dbType.equals("2")) {//DM
//超时第一种情况--有出口但是累计金额不相等的技巧口诀图解
String sql2_1_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select PASSID,OUT_TRADEID,PAYFEE_ALL,FEE_ALL,OBUPROVPAYFEESUMAFTER,TRANSTIME,TRADEID,ISOUT,DISCOUNTFEE_ALL,OUT_GANTRYID,ISHANDLE,ID,FEEPROVBEGINHEX,FEEPROVBEGINTIME,HANDLETIME,EXPOINTID,EXPOINTNAME,MEDIATYPE,ISTIMEOUT,ISSECOND,UPDATETIME,ENTIME,TRANSNUM,PROVINCENUMAFTER,BACKUP3 from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+" and rownum<=1500";
List<String> listTemp=new ArrayList<>();
listTemp.add(sql2_1_1);
listTemp.add(sql2_2_1);
listTemp.add(sql2_3_1);
for (int i = 0; i < listTemp.size(); i++) {
Thread thread=new GetAllData((21+i),1,listTemp.get(i).toString(),jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
//二次数据上传处理线程1个
String sql3_1 = "";
if (dbType.equals("1")) {//oracle
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1=new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread3_1.start();
stop_list.add(thread3_1);
State state3_1=new State();
state3_1.ThreadId=thread3_1.getId();
state3_1.StateUpdateTime=System.currentTimeMillis();
state_list.add(state3_1);
} else if (dbType.equals("2")) {//DM
sql3_1 = "select * from gantry_pass_center where ishandle=1 and issecond=1 and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60)>" + CommonHelp.GetConfigValue("lastTimeOut");
Thread thread3_1= new GetAllData(31,0,sql3_1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE,runAble,this);
thread3_1.start();
}
//删除中间表数据线程,1个
if (dbType.equals("1")) {
String sql4_1 = "delete gantry_pass_center where ROUND(TO_NUMBER(sysdate - handletime))>25";
deleteCenter deleteC=new deleteCenter(jdbcTemplate,sql4_1,runAble,this);
Thread thread=new Thread(deleteC);
thread.start();
// stop_list.add(thread);
// State state=new State();
// state.ThreadId=thread.getId();
// state.StateUpdateTime=System.currentTimeMillis();
// state_list.add(state);
}
//预分账线程7个
int THREAD_GANTRY_STAT_COUNT=7;
for (int i = 0; i < THREAD_GANTRY_STAT_COUNT; i++) {
String sql="select * from gantry_pass_stat_temp where ora_hash(tradeid,"+(THREAD_GANTRY_STAT_COUNT-1)+")="+i+" and rownum<=1000";
GetGantryStat getGantryStat=new GetGantryStat(jdbcTemplate,sql,runAble,this);
Thread thread=new Thread(getGantryStat);
thread.start();
stop_list.add(thread);
State state=new State();
state.ThreadId=thread.getId();
state.StateUpdateTime=System.currentTimeMillis();
state_list.add(state);
}
}
catch (Exception e){
flag=false;
e.printStackTrace();
LogClass.debug(e.toString());
}
finally {
return stop_list;
}
}
}

@ -0,0 +1,180 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sound.midi.Soundbank;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GMAIN_TEST {
public static void main(String[] args) throws Exception {
// LogClass.delete("测试数据");
// JdbcTemplate jdbcTemplate=new JdbcTemplate(new DBUtil().Hikar_DataSource());
//
// List list_PARTICIPANT = CommonHelp.getListBySql("select * from TB_PARTICIPANT",jdbcTemplate);
//
// List list_LINE_TABLE=CommonHelp.getListBySql("select LINENAME,GBLINEID from line_table",jdbcTemplate);
//
// List list_FEEUNIT_TABLE=CommonHelp.getListBySql("select ID,NAME FROM FEEUNIT_TABLE",jdbcTemplate);
//
// List list_GANTRY_TABLE=CommonHelp.getListBySql("select * from gantry_table",jdbcTemplate);
// String sql="select * from gantry_pass_center where passid='014101203823180302389420220616114637'";
// //011301200123000511468020220418120750
// //020000140102070009234220220422172438
// GPA_DATA gpa_data=new GPA_DATA();
// gpa_data.GetAllETCData(sql,0,1,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE);
//
//// startGPA s=new startGPA();
//// String sql_stat="select * from gantry_pass_stat_temp where tradeid='G0065150030002100102022051613200037'";
//// statTest(jdbcTemplate,sql_stat);
//超时第一种情况--有出口但是累计金额不相等的
List<Map<String,Integer>> listTemp=new ArrayList<>();
for (int i = 0; i <= 6; i++) {
String sql2_1_1 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)="+i;
Map map=new HashMap();
map.put("sql",sql2_1_1);
map.put("threadid",20+i+1);
listTemp.add(map);
}
for (Map<String, Integer> stringStringMap : listTemp) {
System.out.println(stringStringMap.get("sql")+":"+stringStringMap.get("threadid"));
}
String sql2_1_1 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=0";
String sql2_1_2 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=1";
String sql2_1_3 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=2";
String sql2_1_4 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=3";
String sql2_1_5 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=4";
String sql2_1_6 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=5";
String sql2_1_7 = "select * from(select * from gantry_pass_center where ishandle=0 and isout=1 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut")+") t where ora_hash(passid,6)=6";
//超时第二种情况--累计金额相等但是没有出口的
String sql2_2_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
//超时第三种情况--没有出口累计金额也不相等的
String sql2_3_1 = "select * from gantry_pass_center where ishandle=0 and isout=0 and payfee_all!=obuprovpayfeesumafter and ROUND(TO_NUMBER(sysdate - transtime) * 24 * 60)>" + CommonHelp.GetConfigValue("timeOut") + " and ROUND(TO_NUMBER(sysdate - updatetime) * 24 * 60) > " + CommonHelp.GetConfigValue("lastTimeOut");
}
public static void statTest(JdbcTemplate jdbcTemplate,String sql){
try {
//s.UpdateState(Thread.currentThread().getId());
List list=jdbcTemplate.queryForList(sql);
String tollIntervalsId="";
String stano="";
String roadno="";
StringBuilder delete_tradeid=new StringBuilder();
if (list.size()>0){
for (int i = 0; i < list.size(); i++) {
try {
Map map=(Map) list.get(i);
String[] tollIntervalsId_temp=map.get("TOLLINTERVALID")==null?null:map.get("TOLLINTERVALID").toString().split("\\|");
String[] feeGroup_temp=map.get("FEEGROUP")==null?null:map.get("FEEGROUP").toString().split("\\|");
String[] payfeeGroup_temp=map.get("PAYFEEGROUP")==null?null:map.get("PAYFEEGROUP").toString().split("\\|");
String[] specialtype_temp=null;
if (map.get("SPECIALTYPE")!=null){
if (map.get("SPECIALTYPE").toString().replace(" ","").length()>0){
specialtype_temp=map.get("SPECIALTYPE").toString().split("\\|");
}
}
String is_have_gantry_trade_sql="SELECT * FROM gantry_trade_mass where gantryid='" +map.get("GANTRYID").toString() + "' and classdate=TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " +map.get("MEDIATYPE") + " AND VEHICLETYPE = " +map.get("VEHICLETYPE");
List list_trade_ishave=jdbcTemplate.queryForList(is_have_gantry_trade_sql);
String boundarytype_sql = "select boundarytype from gantry_table where id='" + map.get("GANTRYID").toString() + "'";
List boundary=jdbcTemplate.queryForList(boundarytype_sql);
if (boundary.size()>0){
}
int boundarytype=Integer.valueOf(((Map) jdbcTemplate.queryForList(boundarytype_sql).get(0)).get("BOUNDARYTYPE").toString());
if (list_trade_ishave.size()>0){
int feesuccnum=0;
int feefailenum=0;
if (map.get("FEECALCRESULT").toString().equals("0") && map.get("TRADERESULT").toString().equals("0")){
feesuccnum = 1;
}
else {
feefailenum = 1;
}
// JSONObject temp=new JSONObject(((Map) list_trade_ishave.get(0)).get("SPECIALTYPE").toString());
// if (specialtype_temp!=null){
// for (int j = 0; j < specialtype_temp.length; j++) {
// String special_value="";
// if (specil_list.contains(Integer.valueOf(specialtype_temp[j]))){
//
// }
// }
// }
String update_gantry_trade = "update gantry_trade_mass set boundarytype = " + boundarytype + ", feesuccnum = feesuccnum+" + feesuccnum + ", feefailenum = feefailenum+" + feefailenum + ", specialtype = '' where gantryid = '" + map.get("GANTRYID").toString() + "' and classdate = TO_DATE('" +map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') and mediatype = " + map.get("MEDIATYPE") + " and vehicletype = " + map.get("VEHICLETYPE");
jdbcTemplate.update(update_gantry_trade);
}
else {
String insert_gantry_trade= "insert into gantry_trade_mass (gantryid, classdate, mediatype, vehicletype, boundarytype, feesuccnum, feefailenum, specialtype, feelostnum) values ('" +map.get("GANTRYID").toString() + "', TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd'), " +map.get("MEDIATYPE") + ", " + map.get("VEHICLETYPE") + ", " + boundarytype + ", 0, 0, '{}', 0) ";
jdbcTemplate.update(insert_gantry_trade);
}
if (tollIntervalsId_temp!=null && feeGroup_temp!=null && payfeeGroup_temp!=null){
if (tollIntervalsId_temp.length== feeGroup_temp.length && feeGroup_temp.length==payfeeGroup_temp.length){
for (int j = 0; j < tollIntervalsId_temp.length; j++) {
if (tollIntervalsId_temp[j].length()>=16){
tollIntervalsId=tollIntervalsId_temp[j].substring(0,16);
String stano_roadno_sql = "select ostano,oroadno from feeunit_table where id='" + tollIntervalsId + "'";
List stano_roadno_list=jdbcTemplate.queryForList(stano_roadno_sql);
if (stano_roadno_list.size()>0){
stano=((Map)stano_roadno_list.get(0)).get("OSTANO").toString();
roadno=((Map)stano_roadno_list.get(0)).get("OROADNO").toString();
}
else {
stano="0";
roadno="0";
}
String is_have_sql = "SELECT 1 FROM DUAL WHERE EXISTS (SELECT * FROM gantry_stat where FEEUNITID='" + tollIntervalsId + "' and classdate=TO_DATE('" +map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " +map.get("MEDIATYPE") + " AND VEHTYPE = " +map.get("VEHICLETYPE") + " AND ROADNO = " + roadno + " and STANO=" + stano + ")";
List list_ishave=jdbcTemplate.queryForList(is_have_sql);
if (list_ishave.size()>0){
String update_sql = "UPDATE GANTRY_STAT SET VEHCOUNT = VEHCOUNT + 1, CASH = TO_NUMBER(CASH) +TO_NUMBER(" + (payfeeGroup_temp[j].replace(" ","").length() == 0 ? "0" : payfeeGroup_temp[j]) + "), INCASH = TO_NUMBER(INCASH) +TO_NUMBER(" + (feeGroup_temp[j].replace(" ","").length() == 0 ? "0" : feeGroup_temp[j]) + ") where FEEUNITID='" + tollIntervalsId + "' and classdate=TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd') AND MEDIATYPE = " + map.get("MEDIATYPE") + " AND VEHTYPE = " + map.get("VEHICLETYPE") + " AND ROADNO = " + roadno;
jdbcTemplate.update(update_sql);
}
else {
String insert_sql = "INSERT INTO GANTRY_STAT(ROADNO,STANO,CLASSDATE,FEEUNITID,MEDIATYPE, VEHTYPE,VEHCLASS,SPECIALTYPE,AXLECOUNT,VEHCOUNT,TRADERESULT,HOLIDAYSTATE,VALIDSTATUS,CASH,INCASH,FEESUMLOCALAFTER,BACKUP1,BACKUP2,BACKUP3,BACKUP4,DATEMARK) VALUES(" + roadno + ", " + stano + ", TO_DATE('" + map.get("TRANSTIME").toString().substring(0,10) + "', 'yyyy-mm-dd'), '" + tollIntervalsId + "', " + map.get("MEDIATYPE") + "," + map.get("VEHICLETYPE") + ", 0, 0, 2, 1, 0, 0, 0," + (payfeeGroup_temp[j].replace(" ","").length() == 0 ? "0" : payfeeGroup_temp[j]) + ", " + (feeGroup_temp[j].replace(" ","").length() == 0 ? "0" : feeGroup_temp[j]) + ", 0, 0, 0, '0','0', SYSDATE)";
jdbcTemplate.update(insert_sql);
}
}
}
}
}
String delete_sql="delete gantry_pass_stat_temp where tradeid='" +map.get("TRADEID") + "' ";
jdbcTemplate.update(delete_sql);
}
catch (Exception e){
LogClass.error("预分账错误日志:"+e.toString()+","+((Map) list.get(i)).get("TRADEID"));
}
}
}
Thread.sleep(1000*30);
}
catch (Exception e){
LogClass.error("预拆分错误"+e.toString());
}
}
}

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: GPA.GAMIN

@ -0,0 +1,29 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
public class deleteCenter implements Runnable{
private JdbcTemplate jdbcTemplate;
private String sql;
private boolean runAble;
private startGPA s;
public deleteCenter(JdbcTemplate jdbcTemplate,String sql,boolean runAble,startGPA s){
this.jdbcTemplate=jdbcTemplate;
this.sql=sql;
this.runAble=runAble;
this.s=s;
}
public deleteCenter(){}
@Override
public void run() {
while (runAble){
try {
// s.UpdateState(Thread.currentThread().getId());
jdbcTemplate.update(sql);
Thread.sleep(1000*60*60*24);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,62 @@
package GPA;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
public class GetAllData extends Thread {
private int threadId;//线程ID
private int isTimeOut;
private String sql;//sql语句
private JdbcTemplate jdbcTemplate;//连接池
private List list_PARTICIPANT;
private List list_LINE_TABLE;
private List list_FEEUNIT_TABLE;
private List list_GANTRY_TABLE;
private startGPA s;
private boolean runAble;
private static boolean flag = true;
public GetAllData(int threadId, int isTimeOut, String sql, JdbcTemplate jdbcTemplate,List list_PARTICIPANT,List list_LINE_TABLE,List list_FEEUNIT_TABLE,List list_GANTRY_TABLE,boolean runAble,startGPA s){
this.threadId=threadId;
this.sql=sql;
this.isTimeOut=isTimeOut;
this.jdbcTemplate=jdbcTemplate;
this.list_PARTICIPANT=list_PARTICIPANT;
this.list_LINE_TABLE=list_LINE_TABLE;
this.list_FEEUNIT_TABLE=list_FEEUNIT_TABLE;
this.list_GANTRY_TABLE=list_GANTRY_TABLE;
this.s=s;
this.runAble=runAble;
}
public static void setStop(){
System.out.println("停止线程。。。。");
flag=false;
}
@Override
public void run() {
while (runAble){
try {
s.UpdateState(Thread.currentThread().getId());
GPA_DATA gpaData= new GPA_DATA();
gpaData.GetAllETCData(sql,isTimeOut,threadId,jdbcTemplate,list_PARTICIPANT,list_LINE_TABLE,list_FEEUNIT_TABLE,list_GANTRY_TABLE);
Thread.sleep(50);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,53 @@
package GPA;
import java.io.File;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
public class SingleApplication {
public static void makeSingle(String singleId) {
RandomAccessFile raf = null;
FileChannel channel = null;
FileLock lock = null;
try {
// 在临时文件夹创建一个临时文件,锁住这个文件用来保证应用程序只有一个实例被创建.
File sf = new File(System.getProperty("java.io.tmpdir") + singleId + ".single");
sf.deleteOnExit();
sf.createNewFile();
raf = new RandomAccessFile(sf, "rw");
channel = raf.getChannel();
lock = channel.tryLock();
if (lock == null) {
// 如果没有得到锁,则程序退出.
// 没有必要手动释放锁和关闭流,当程序退出时,他们会被关闭的.
throw new Error("An instance of the application is running.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,107 @@
package com.trkf.feemoduleservice;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the com.trkf.feemoduleservice package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
private final static QName _GetFeeResponse_QNAME = new QName("http://FeeModuleService.trkf.com/", "getFeeResponse");
private final static QName _GetStaFeeResponse_QNAME = new QName("http://FeeModuleService.trkf.com/", "GetStaFeeResponse");
private final static QName _GetFee_QNAME = new QName("http://FeeModuleService.trkf.com/", "getFee");
private final static QName _GetStaFee_QNAME = new QName("http://FeeModuleService.trkf.com/", "GetStaFee");
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.trkf.feemoduleservice
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link GetFeeResponse }
*
*/
public GetFeeResponse createGetFeeResponse() {
return new GetFeeResponse();
}
/**
* Create an instance of {@link GetFee }
*
*/
public GetFee createGetFee() {
return new GetFee();
}
/**
* Create an instance of {@link GetStaFee }
*
*/
public GetStaFee createGetStaFee() {
return new GetStaFee();
}
/**
* Create an instance of {@link GetStaFeeResponse }
*
*/
public GetStaFeeResponse createGetStaFeeResponse() {
return new GetStaFeeResponse();
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link GetFeeResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://FeeModuleService.trkf.com/", name = "getFeeResponse")
public JAXBElement<GetFeeResponse> createGetFeeResponse(GetFeeResponse value) {
return new JAXBElement<GetFeeResponse>(_GetFeeResponse_QNAME, GetFeeResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link GetStaFeeResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://FeeModuleService.trkf.com/", name = "GetStaFeeResponse")
public JAXBElement<GetStaFeeResponse> createGetStaFeeResponse(GetStaFeeResponse value) {
return new JAXBElement<GetStaFeeResponse>(_GetStaFeeResponse_QNAME, GetStaFeeResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link GetFee }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://FeeModuleService.trkf.com/", name = "getFee")
public JAXBElement<GetFee> createGetFee(GetFee value) {
return new JAXBElement<GetFee>(_GetFee_QNAME, GetFee.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link GetStaFee }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://FeeModuleService.trkf.com/", name = "GetStaFee")
public JAXBElement<GetStaFee> createGetStaFee(GetStaFee value) {
return new JAXBElement<GetStaFee>(_GetStaFee_QNAME, GetStaFee.class, null, value);
}
}

Binary file not shown.

@ -0,0 +1,22 @@
<?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" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
<orderEntry type="module-library">
<library name="JUnit4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save