Compare commits
	
		
			23 Commits
		
	
	
		
			main
			...
			66d55f9e87
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 66d55f9e87 | |||
| d12a7b14e4 | |||
| c33b7e8e35 | |||
| c3c14048d7 | |||
| aaef2bd862 | |||
| ae25e50f3d | |||
| 45fb965496 | |||
| f77272ff29 | |||
| a4ccfaf9b8 | |||
| 1b1545968c | |||
| f64cac1c21 | |||
| 95047193eb | |||
| a823e3f963 | |||
| a3dc3480ba | |||
| 22d92ccf97 | |||
| 095f5c2c05 | |||
| 3f34ed1c8d | |||
| 2e0fbb5008 | |||
| e53521356d | |||
| 85cbca1fa3 | |||
| 6f61d5c07c | |||
| 807ed211f7 | |||
| 61c6198a9b | 
							
								
								
									
										8
									
								
								code/cpicxim-XMNHSA-repeater/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								code/cpicxim-XMNHSA-repeater/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# 默认忽略的文件
 | 
			
		||||
/shelf/
 | 
			
		||||
/workspace.xml
 | 
			
		||||
# 基于编辑器的 HTTP 客户端请求
 | 
			
		||||
/httpRequests/
 | 
			
		||||
# Datasource local storage ignored files
 | 
			
		||||
/dataSources/
 | 
			
		||||
/dataSources.local.xml
 | 
			
		||||
							
								
								
									
										5
									
								
								code/cpicxim-XMNHSA-repeater/.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								code/cpicxim-XMNHSA-repeater/.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
<component name="ProjectCodeStyleConfiguration">
 | 
			
		||||
  <state>
 | 
			
		||||
    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
 | 
			
		||||
  </state>
 | 
			
		||||
</component>
 | 
			
		||||
							
								
								
									
										18
									
								
								code/cpicxim-XMNHSA-repeater/.idea/compiler.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								code/cpicxim-XMNHSA-repeater/.idea/compiler.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="CompilerConfiguration">
 | 
			
		||||
    <annotationProcessing>
 | 
			
		||||
      <profile name="Maven default annotation processors profile" enabled="true">
 | 
			
		||||
        <sourceOutputDir name="target/generated-sources/annotations" />
 | 
			
		||||
        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
 | 
			
		||||
        <outputRelativeToContentRoot value="true" />
 | 
			
		||||
        <module name="cpicxim-XMNHSA-repeater" />
 | 
			
		||||
      </profile>
 | 
			
		||||
    </annotationProcessing>
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="JavacSettings">
 | 
			
		||||
    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
 | 
			
		||||
      <module name="cpicxim-XMNHSA-repeater" options="-extdirs D:\develop\cpicxim\cpicxim-huixiabao\code\cpicxim-XMNHSA-repeater\lib" />
 | 
			
		||||
    </option>
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										7
									
								
								code/cpicxim-XMNHSA-repeater/.idea/encodings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								code/cpicxim-XMNHSA-repeater/.idea/encodings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="Encoding">
 | 
			
		||||
    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
 | 
			
		||||
    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										20
									
								
								code/cpicxim-XMNHSA-repeater/.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								code/cpicxim-XMNHSA-repeater/.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="RemoteRepositoriesConfiguration">
 | 
			
		||||
    <remote-repository>
 | 
			
		||||
      <option name="id" value="central" />
 | 
			
		||||
      <option name="name" value="Maven Central repository" />
 | 
			
		||||
      <option name="url" value="https://repo1.maven.org/maven2" />
 | 
			
		||||
    </remote-repository>
 | 
			
		||||
    <remote-repository>
 | 
			
		||||
      <option name="id" value="jboss.community" />
 | 
			
		||||
      <option name="name" value="JBoss Community repository" />
 | 
			
		||||
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
 | 
			
		||||
    </remote-repository>
 | 
			
		||||
    <remote-repository>
 | 
			
		||||
      <option name="id" value="central" />
 | 
			
		||||
      <option name="name" value="Central Repository" />
 | 
			
		||||
      <option name="url" value="https://maven.aliyun.com/repository/public" />
 | 
			
		||||
    </remote-repository>
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										12
									
								
								code/cpicxim-XMNHSA-repeater/.idea/misc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								code/cpicxim-XMNHSA-repeater/.idea/misc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="ExternalStorageConfigurationManager" enabled="true" />
 | 
			
		||||
  <component name="MavenProjectsManager">
 | 
			
		||||
    <option name="originalFiles">
 | 
			
		||||
      <list>
 | 
			
		||||
        <option value="$PROJECT_DIR$/pom.xml" />
 | 
			
		||||
      </list>
 | 
			
		||||
    </option>
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="ProjectRootManager" version="2" project-jdk-name="22 (2)" project-jdk-type="JavaSDK" />
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										6
									
								
								code/cpicxim-XMNHSA-repeater/.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								code/cpicxim-XMNHSA-repeater/.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="VcsDirectoryMappings">
 | 
			
		||||
    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										0
									
								
								code/cpicxim-XMNHSA-repeater/.mvn/jvm.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								code/cpicxim-XMNHSA-repeater/.mvn/jvm.config
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								code/cpicxim-XMNHSA-repeater/.mvn/maven.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								code/cpicxim-XMNHSA-repeater/.mvn/maven.config
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										3
									
								
								code/cpicxim-XMNHSA-repeater/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								code/cpicxim-XMNHSA-repeater/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
{
 | 
			
		||||
    "java.configuration.updateBuildConfiguration": "automatic"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										200
									
								
								code/cpicxim-XMNHSA-repeater/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								code/cpicxim-XMNHSA-repeater/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,200 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
			
		||||
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
			
		||||
  <modelVersion>4.0.0</modelVersion>
 | 
			
		||||
 | 
			
		||||
  <groupId>com.cpic.xim</groupId>
 | 
			
		||||
  <artifactId>cpicxim-XMNHSA-repeater</artifactId>
 | 
			
		||||
  <version>1.0-SNAPSHOT</version>
 | 
			
		||||
 | 
			
		||||
  <name>cpicxim-XMNHSA-repeater</name>
 | 
			
		||||
  <!-- FIXME change it to the project's website -->
 | 
			
		||||
  <url>http://www.example.com</url>
 | 
			
		||||
 | 
			
		||||
  <properties>
 | 
			
		||||
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
			
		||||
    <maven.compile.source>18</maven.compile.source>
 | 
			
		||||
    <maven.compile.target>18</maven.compile.target>
 | 
			
		||||
    <maven.compiler.release>18</maven.compiler.release>
 | 
			
		||||
  </properties>
 | 
			
		||||
 | 
			
		||||
  <dependencyManagement>
 | 
			
		||||
    <dependencies>
 | 
			
		||||
      <dependency>
 | 
			
		||||
        <groupId>org.junit</groupId>
 | 
			
		||||
        <artifactId>junit-bom</artifactId>
 | 
			
		||||
        <version>5.11.0</version>
 | 
			
		||||
        <type>pom</type>
 | 
			
		||||
        <scope>import</scope>
 | 
			
		||||
      </dependency>
 | 
			
		||||
    </dependencies>
 | 
			
		||||
  </dependencyManagement>
 | 
			
		||||
 | 
			
		||||
  <dependencies>
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.junit.jupiter</groupId>
 | 
			
		||||
      <artifactId>junit-jupiter-api</artifactId>
 | 
			
		||||
      <scope>test</scope>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <!-- Optionally: parameterized tests support -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.junit.jupiter</groupId>
 | 
			
		||||
      <artifactId>junit-jupiter-params</artifactId>
 | 
			
		||||
      <scope>test</scope>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <!--jackson-->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
      <artifactId>jackson-databind</artifactId>
 | 
			
		||||
      <version>2.14.2</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
      <artifactId>jackson-core</artifactId>
 | 
			
		||||
      <version>2.13.4</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
      <artifactId>jackson-annotations</artifactId>
 | 
			
		||||
      <version>2.13.4</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <!-- log-4j -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.apache.logging.log4j</groupId>
 | 
			
		||||
      <artifactId>log4j-core</artifactId>
 | 
			
		||||
      <version>2.20.0</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.apache.logging.log4j</groupId>
 | 
			
		||||
      <artifactId>log4j-slf4j2-impl</artifactId>
 | 
			
		||||
      <version>2.20.0</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.apache.logging.log4j</groupId>
 | 
			
		||||
      <artifactId>log4j-api</artifactId>
 | 
			
		||||
      <version>2.20.0</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <!-- POI -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.apache.poi</groupId>
 | 
			
		||||
      <artifactId>poi</artifactId>
 | 
			
		||||
      <version>5.2.3</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.apache.poi</groupId>
 | 
			
		||||
      <artifactId>poi-ooxml</artifactId>
 | 
			
		||||
      <version>5.2.3</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <!-- mybatis -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.mybatis</groupId>
 | 
			
		||||
      <artifactId>mybatis</artifactId>
 | 
			
		||||
      <version>3.5.19</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId> cn.hsa.zephyr</groupId>
 | 
			
		||||
      <artifactId>zephyr-api-sdk</artifactId>
 | 
			
		||||
      <version>2.0.1</version>
 | 
			
		||||
      <scope>system</scope>
 | 
			
		||||
      <systemPath>${project.basedir}/lib/zephyr-api-sdk.jar</systemPath>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.alibaba</groupId>
 | 
			
		||||
      <artifactId>fastjson</artifactId>
 | 
			
		||||
      <!-- <version>1.2.83</version> -->
 | 
			
		||||
      <version>2.0.56</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>com.mysql</groupId>
 | 
			
		||||
      <artifactId>mysql-connector-j</artifactId>
 | 
			
		||||
      <version>9.2.0</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>org.bouncycastle</groupId>
 | 
			
		||||
      <artifactId>bcprov-jdk18on</artifactId>
 | 
			
		||||
      <version>1.80</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
 | 
			
		||||
    <dependency>
 | 
			
		||||
      <groupId>commons-logging</groupId>
 | 
			
		||||
      <artifactId>commons-logging</artifactId>
 | 
			
		||||
      <version>1.3.5</version>
 | 
			
		||||
    </dependency>
 | 
			
		||||
 | 
			
		||||
  </dependencies>
 | 
			
		||||
 | 
			
		||||
  <build>
 | 
			
		||||
    <defaultGoal>compile</defaultGoal>
 | 
			
		||||
    <plugins>
 | 
			
		||||
      <plugin>
 | 
			
		||||
        <artifactId>maven-surefire-plugin</artifactId>
 | 
			
		||||
        <version>3.5.2</version>
 | 
			
		||||
        <configuration>
 | 
			
		||||
          <skip>true</skip>
 | 
			
		||||
        </configuration>
 | 
			
		||||
      </plugin>
 | 
			
		||||
      <plugin>
 | 
			
		||||
        <artifactId>maven-compiler-plugin</artifactId>
 | 
			
		||||
        <version>3.14.0</version>
 | 
			
		||||
        <configuration>
 | 
			
		||||
          <compilerArguments>
 | 
			
		||||
            <extdirs>${project.basedir}/lib</extdirs>
 | 
			
		||||
          </compilerArguments>
 | 
			
		||||
        </configuration>
 | 
			
		||||
      </plugin>
 | 
			
		||||
      <plugin>
 | 
			
		||||
        <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
        <artifactId>maven-assembly-plugin</artifactId>
 | 
			
		||||
        <version>3.7.1</version>
 | 
			
		||||
        <configuration>
 | 
			
		||||
          <descriptorRefs>
 | 
			
		||||
            <descriptorRef>jar-with-dependencies</descriptorRef>
 | 
			
		||||
          </descriptorRefs>
 | 
			
		||||
          <archive>
 | 
			
		||||
            <manifest>
 | 
			
		||||
              <mainClass>com.cpic.xim.huixiabao.AppMain</mainClass>
 | 
			
		||||
            </manifest>
 | 
			
		||||
          </archive>
 | 
			
		||||
        </configuration>
 | 
			
		||||
        <executions>
 | 
			
		||||
          <execution>
 | 
			
		||||
            <id>make-assembly</id>
 | 
			
		||||
            <phase>package</phase>
 | 
			
		||||
            <goals>
 | 
			
		||||
              <goal>single</goal>
 | 
			
		||||
            </goals>
 | 
			
		||||
          </execution>
 | 
			
		||||
        </executions>
 | 
			
		||||
      </plugin>
 | 
			
		||||
      <plugin>
 | 
			
		||||
        <groupId>org.springframework.boot</groupId>
 | 
			
		||||
        <artifactId>spring-boot-maven-plugin</artifactId>
 | 
			
		||||
        <version>3.4.3</version>
 | 
			
		||||
        <configuration>
 | 
			
		||||
          <mainClass>com.cpic.xim.huixiabao.AppMain</mainClass>
 | 
			
		||||
          <includeSystemScope>true</includeSystemScope>
 | 
			
		||||
        </configuration>
 | 
			
		||||
        <executions>
 | 
			
		||||
          <execution>
 | 
			
		||||
            <id>repackage</id>
 | 
			
		||||
            <goals>
 | 
			
		||||
              <goal>repackage</goal>
 | 
			
		||||
            </goals>
 | 
			
		||||
          </execution>
 | 
			
		||||
        </executions>
 | 
			
		||||
      </plugin>
 | 
			
		||||
    </plugins>
 | 
			
		||||
  </build>
 | 
			
		||||
</project>
 | 
			
		||||
@@ -0,0 +1,61 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @Date: 2025-03-11 09:27:40
 | 
			
		||||
 * 
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/AppMain.java
 | 
			
		||||
 * 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.huixiabao;
 | 
			
		||||
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
 | 
			
		||||
import com.cpic.xim.huixiabao.data.config.HuixiabaoConfig;
 | 
			
		||||
import com.cpic.xim.huixiabao.data.pojo.HmbXyxInfo;
 | 
			
		||||
import com.cpic.xim.huixiabao.nhs.CpicximToXMNHS;
 | 
			
		||||
 | 
			
		||||
public class AppMain
 | 
			
		||||
{
 | 
			
		||||
    private static Logger logger = LoggerFactory.getLogger( AppMain.class );
 | 
			
		||||
 | 
			
		||||
    public static void main( String[] args )
 | 
			
		||||
    {
 | 
			
		||||
        doPostXyxInfo();
 | 
			
		||||
 | 
			
		||||
        System.out.println( "Hello World!" );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void doPostXyxInfo()
 | 
			
		||||
    {
 | 
			
		||||
        while ( true )
 | 
			
		||||
        {
 | 
			
		||||
            Vector<HmbXyxInfo> xyxInfo = CpicximToXMNHS.getNeverTransHmbList();
 | 
			
		||||
 | 
			
		||||
            // 发送
 | 
			
		||||
            if ( xyxInfo.isEmpty() == false )
 | 
			
		||||
            {
 | 
			
		||||
                logger.info( "查询到" + String.valueOf( xyxInfo.size() ) + "条数据,开始发送!" );
 | 
			
		||||
                
 | 
			
		||||
                CpicximToXMNHS.postHmbXyxInfo( xyxInfo );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                logger.info( "等待" + String.valueOf( HuixiabaoConfig.getSleepSeconds() ) + "秒。" );
 | 
			
		||||
                Thread.sleep( HuixiabaoConfig.getSleepSeconds() * 1000 );
 | 
			
		||||
            }
 | 
			
		||||
            catch ( InterruptedException error )
 | 
			
		||||
            {
 | 
			
		||||
                logger.error( "sleep时出错:" + error.getMessage() );
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,68 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @Date: 2025-03-11 09:30:38
 | 
			
		||||
 * 
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/config/HuixiabaoConfig.java
 | 
			
		||||
 * 
 | 
			
		||||
 * @Description: 存放惠厦保相关的配置文件,以后要改成json文件存放。
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package com.cpic.xim.huixiabao.data.config;
 | 
			
		||||
 | 
			
		||||
public class HuixiabaoConfig
 | 
			
		||||
{
 | 
			
		||||
    public static String getAppid()
 | 
			
		||||
    {
 | 
			
		||||
        return appid;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getAppSecret()
 | 
			
		||||
    {
 | 
			
		||||
        return appSecret;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getSignKey()
 | 
			
		||||
    {
 | 
			
		||||
        return signKey;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getEncKey()
 | 
			
		||||
    {
 | 
			
		||||
        return encKey;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static int getMAX_COUNT_PER_REQUEST()
 | 
			
		||||
    {
 | 
			
		||||
        return MAX_COUNT_PER_REQUEST;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getUrl()
 | 
			
		||||
    {
 | 
			
		||||
        return url;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getFunId()
 | 
			
		||||
    {
 | 
			
		||||
        return funId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static int getSleepSeconds()
 | 
			
		||||
    {
 | 
			
		||||
        return SLEEP_SECONDS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static final int MAX_COUNT_PER_REQUEST = 500;
 | 
			
		||||
    private static final int SLEEP_SECONDS         = 10;
 | 
			
		||||
 | 
			
		||||
    private static final String url       = "http://172.18.1.150:9040/h3c/new/test/api/gafe/rest";
 | 
			
		||||
    private static final String appid     = "hxb-tb";
 | 
			
		||||
    private static final String appSecret = "60F468FB46170DD4CF6CBECE215DBFC0";
 | 
			
		||||
    private static final String funId     = "XY00.00.00.03";
 | 
			
		||||
    private static final String signKey   = "1A2F447BD0F930798D8031B137EC6E25";
 | 
			
		||||
    private static final String encKey    = "08307695B1668EB9FD6210250FED874F";
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,109 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @Date: 2025-03-06 14:33:27
 | 
			
		||||
 * 
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfo.java
 | 
			
		||||
 * 
 | 
			
		||||
 * @Description: 小药箱接口参数描述
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.huixiabao.data.pojo;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonInclude;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 | 
			
		||||
 | 
			
		||||
@JsonInclude( JsonInclude.Include.NON_EMPTY )
 | 
			
		||||
@JsonPropertyOrder( alphabetic = true )
 | 
			
		||||
public class HmbXyxInfo
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public HmbXyxInfo( String psnName,
 | 
			
		||||
                       String certNo,
 | 
			
		||||
                       String serviceId,
 | 
			
		||||
                       String status,
 | 
			
		||||
                       String xyxNo )
 | 
			
		||||
    {
 | 
			
		||||
        this.psnName   = psnName;
 | 
			
		||||
        this.certNo    = certNo;
 | 
			
		||||
        this.serviceId = serviceId;
 | 
			
		||||
        this.status    = status;
 | 
			
		||||
        this.xyxNo     = xyxNo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPsnName()
 | 
			
		||||
    {
 | 
			
		||||
        return psnName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPsnName( String psnName )
 | 
			
		||||
    {
 | 
			
		||||
        this.psnName = psnName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getCertNo()
 | 
			
		||||
    {
 | 
			
		||||
        return certNo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCertNo( String certNo )
 | 
			
		||||
    {
 | 
			
		||||
        this.certNo = certNo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getServiceId()
 | 
			
		||||
    {
 | 
			
		||||
        return serviceId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setServiceId( String serviceId )
 | 
			
		||||
    {
 | 
			
		||||
        this.serviceId = serviceId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getStatus()
 | 
			
		||||
    {
 | 
			
		||||
        return status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setStatus( String status )
 | 
			
		||||
    {
 | 
			
		||||
        this.status = status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getXyxNo()
 | 
			
		||||
    {
 | 
			
		||||
        return xyxNo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setXyxNo( String xyxNo )
 | 
			
		||||
    {
 | 
			
		||||
        this.xyxNo = xyxNo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString()
 | 
			
		||||
    {
 | 
			
		||||
        return "HmbXyxInfo [psnName=" + psnName + ", certNo=" + certNo + ", serviceId=" + serviceId + ", status=" + status + ", xyxNo=" + xyxNo + "]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "psnName" )
 | 
			
		||||
    private String psnName;
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "certno" )
 | 
			
		||||
    private String certNo;
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "serviceId" )
 | 
			
		||||
    private String serviceId;
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "status" )
 | 
			
		||||
    private String status;
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "xyxNo" )
 | 
			
		||||
    private String xyxNo;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,59 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2025-03-06 14:27:05
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfoRequest.java
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.huixiabao.data.pojo;
 | 
			
		||||
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonInclude;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 | 
			
		||||
 | 
			
		||||
@JsonInclude( JsonInclude.Include.NON_EMPTY )
 | 
			
		||||
@JsonPropertyOrder( alphabetic = true )
 | 
			
		||||
public class HmbXyxInfoRequest
 | 
			
		||||
{
 | 
			
		||||
    public HmbXyxInfoRequest()
 | 
			
		||||
    {
 | 
			
		||||
        this.topic = "hmbXyxInfo";
 | 
			
		||||
        this.hmbList = new Vector<>();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public HmbXyxInfoRequest( String topic, Vector<HmbXyxInfo> hmbList )
 | 
			
		||||
    {
 | 
			
		||||
        this.topic = topic;
 | 
			
		||||
        this.topic = "hmbXyxInfo";
 | 
			
		||||
        this.hmbList = hmbList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getTopic()
 | 
			
		||||
    {
 | 
			
		||||
        return topic;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTopic( String topic )
 | 
			
		||||
    {
 | 
			
		||||
        this.topic = topic;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Vector<HmbXyxInfo> getHmbList()
 | 
			
		||||
    {
 | 
			
		||||
        return hmbList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setHmbList( Vector<HmbXyxInfo> hmbList )
 | 
			
		||||
    {
 | 
			
		||||
        this.hmbList = hmbList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @JsonProperty("topic")
 | 
			
		||||
    private String topic; // 业务类型
 | 
			
		||||
 | 
			
		||||
    @JsonProperty("hmbList")
 | 
			
		||||
    private Vector<HmbXyxInfo> hmbList;
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,82 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2025-03-06 14:17:24
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/NHACommenRequestBody.java
 | 
			
		||||
 * @Description: 易联众请求共通报文结构
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.huixiabao.data.pojo;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
			
		||||
 | 
			
		||||
public class NHACommenRequestBody
 | 
			
		||||
{
 | 
			
		||||
   
 | 
			
		||||
   public String getChs_fjs_appid()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_appid;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_appid( String chs_fjs_appid )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_appid = chs_fjs_appid;
 | 
			
		||||
   }
 | 
			
		||||
   public String getChs_fjs_appsecret()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_appsecret;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_appsecret( String chs_fjs_appsecret )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_appsecret = chs_fjs_appsecret;
 | 
			
		||||
   }
 | 
			
		||||
   public String getChs_fjs_token()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_token;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_token( String chs_fjs_token )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_token = chs_fjs_token;
 | 
			
		||||
   }
 | 
			
		||||
   public String getChs_fjs_funid()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_funid;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_funid( String chs_fjs_funid )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_funid = chs_fjs_funid;
 | 
			
		||||
   }
 | 
			
		||||
   public String getChs_fjs_encdata()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_encdata;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_encdata( String chs_fjs_encdata )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_encdata = chs_fjs_encdata;
 | 
			
		||||
   }
 | 
			
		||||
   public String getChs_fjs_sign()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_sign;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_sign( String chs_fjs_sign )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_sign = chs_fjs_sign;
 | 
			
		||||
   }
 | 
			
		||||
   public int getChs_fjs_timestamp()
 | 
			
		||||
   {
 | 
			
		||||
      return chs_fjs_timestamp;
 | 
			
		||||
   }
 | 
			
		||||
   public void setChs_fjs_timestamp( int chs_fjs_timestamp )
 | 
			
		||||
   {
 | 
			
		||||
      this.chs_fjs_timestamp = chs_fjs_timestamp;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   private String chs_fjs_appid; // 渠道id
 | 
			
		||||
   private String chs_fjs_appsecret; // 渠道私钥
 | 
			
		||||
   private String chs_fjs_token; // 请求时携带的动态令牌
 | 
			
		||||
   private String chs_fjs_funid; // 服务编号
 | 
			
		||||
   private String chs_fjs_encdata; // 加密后的数据
 | 
			
		||||
   private String chs_fjs_sign; // 签名数据串
 | 
			
		||||
   private String data; // 未加密的数据
 | 
			
		||||
   private int chs_fjs_timestamp; // 时间戳
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,316 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @Date: 2025-03-12 09:01:59
 | 
			
		||||
 * 
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java
 | 
			
		||||
 * 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package com.cpic.xim.huixiabao.nhs;
 | 
			
		||||
 | 
			
		||||
import java.sql.Connection;
 | 
			
		||||
import java.sql.DriverManager;
 | 
			
		||||
import java.sql.PreparedStatement;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.Statement;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
import com.cpic.xim.huixiabao.data.pojo.*;
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
import com.alibaba.fastjson.JSONArray;
 | 
			
		||||
import com.alibaba.fastjson.JSONObject;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.DefaultZephyrClient;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.internal.exception.ZephyrApiException;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.internal.util.encrypt.EncryptionModeEnum;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.internal.util.encrypt.SignTypeEnum;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.request.DefaultZephyrRequest;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.response.DefaultZephyrResponse;
 | 
			
		||||
import com.cpic.xim.huixiabao.data.config.HuixiabaoConfig;
 | 
			
		||||
 | 
			
		||||
@SuppressWarnings(
 | 
			
		||||
    "unused"
 | 
			
		||||
)
 | 
			
		||||
public class CpicximToXMNHS
 | 
			
		||||
{
 | 
			
		||||
    private static Logger logger = LoggerFactory.getLogger( CpicximToXMNHS.class );
 | 
			
		||||
 | 
			
		||||
    private static String driverName = "com.mysql.cj.jdbc.Driver";
 | 
			
		||||
    private static String url        = "jdbc:mysql://10.39.0.85:3306/huixiabao?useUnicode=true&characterEncoding=utf8&useSSL=true";
 | 
			
		||||
    private static String userName   = "huixiabao";
 | 
			
		||||
    private static String password   = "Kane@1981";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 从数据库中获取未发送过的小药箱数据。
 | 
			
		||||
     * 
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public static Vector<HmbXyxInfo> getNeverTransHmbList()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        Vector<HmbXyxInfo> items = new Vector<HmbXyxInfo>();
 | 
			
		||||
        HmbXyxInfo         item  = null;
 | 
			
		||||
 | 
			
		||||
        Connection connection = null;
 | 
			
		||||
        Statement  statement  = null;
 | 
			
		||||
        ResultSet  result     = null;
 | 
			
		||||
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            Class.forName( "com.mysql.cj.jdbc.Driver" );
 | 
			
		||||
 | 
			
		||||
            String url      = CpicximToXMNHS.url;
 | 
			
		||||
            String userName = CpicximToXMNHS.userName;
 | 
			
		||||
            String password = CpicximToXMNHS.password;
 | 
			
		||||
            String sql      = """
 | 
			
		||||
                    select info.psnName, info.certNo, info.serviceId, info.status, info.xyxNo
 | 
			
		||||
                      from HmbXyxInfo info,
 | 
			
		||||
                           HmbXyxInfo_Update u
 | 
			
		||||
                     where info.xyxNo = u.xyxNo """;
 | 
			
		||||
 | 
			
		||||
            connection = DriverManager.getConnection( url, userName, password );
 | 
			
		||||
            statement  = connection.createStatement();
 | 
			
		||||
            result     = statement.executeQuery( sql.trim() );
 | 
			
		||||
 | 
			
		||||
            while ( result.next() )
 | 
			
		||||
            {
 | 
			
		||||
                item = new HmbXyxInfo( result.getString( "psnName" ),
 | 
			
		||||
                                       result.getString( "certno" ),
 | 
			
		||||
                                       result.getString( "serviceId" ),
 | 
			
		||||
                                       result.getString( "status" ),
 | 
			
		||||
                                       result.getString( "xyxNo" ) );
 | 
			
		||||
 | 
			
		||||
                items.add( item );
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        catch ( SQLException error )
 | 
			
		||||
        {
 | 
			
		||||
            error.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
        catch ( ClassNotFoundException error )
 | 
			
		||||
        {
 | 
			
		||||
            logger.error( "加载sql驱动错误:" + error.getMessage() );
 | 
			
		||||
        }
 | 
			
		||||
        finally
 | 
			
		||||
        {
 | 
			
		||||
            if ( result != null )
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    result.close();
 | 
			
		||||
                }
 | 
			
		||||
                catch ( SQLException error )
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ( statement != null )
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    statement.close();
 | 
			
		||||
                }
 | 
			
		||||
                catch ( SQLException error )
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ( connection != null )
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    connection.close();
 | 
			
		||||
                }
 | 
			
		||||
                catch ( SQLException error )
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return items;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void removePostedHmbXyxInfo( Vector<HmbXyxInfo> postedItems )
 | 
			
		||||
    {
 | 
			
		||||
        Vector<HmbXyxInfo> items = new Vector<HmbXyxInfo>();
 | 
			
		||||
        HmbXyxInfo         item  = null;
 | 
			
		||||
 | 
			
		||||
        Connection        connection = null;
 | 
			
		||||
        PreparedStatement statement  = null;
 | 
			
		||||
        ResultSet         result     = null;
 | 
			
		||||
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            Class.forName( "com.mysql.cj.jdbc.Driver" );
 | 
			
		||||
 | 
			
		||||
            String url      = CpicximToXMNHS.url;
 | 
			
		||||
            String userName = CpicximToXMNHS.userName;
 | 
			
		||||
            String password = CpicximToXMNHS.password;
 | 
			
		||||
            String sql      = """
 | 
			
		||||
                    delete from HmbXyxInfo_Update where  xyxNo = ?""";
 | 
			
		||||
 | 
			
		||||
            connection = DriverManager.getConnection( url, userName, password );
 | 
			
		||||
            statement  = connection.prepareStatement( sql.trim() );
 | 
			
		||||
 | 
			
		||||
            for ( HmbXyxInfo info : postedItems )
 | 
			
		||||
            {
 | 
			
		||||
                statement.setString( 1, info.getXyxNo() );
 | 
			
		||||
                statement.execute();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        catch ( SQLException error )
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                connection.rollback();
 | 
			
		||||
            }
 | 
			
		||||
            catch ( SQLException e )
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            logger.error( "清理已发送数据失败:" + error.getMessage() );
 | 
			
		||||
        }
 | 
			
		||||
        catch ( ClassNotFoundException error )
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        finally
 | 
			
		||||
        {
 | 
			
		||||
            if ( result != null )
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    result.close();
 | 
			
		||||
                }
 | 
			
		||||
                catch ( SQLException error )
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ( statement != null )
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    statement.close();
 | 
			
		||||
                }
 | 
			
		||||
                catch ( SQLException error )
 | 
			
		||||
                {
 | 
			
		||||
                    logger.error( "加载sql驱动错误:" + error.getMessage() );
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ( connection != null )
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    connection.close();
 | 
			
		||||
                }
 | 
			
		||||
                catch ( SQLException error )
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void postHmbXyxInfo( Vector<HmbXyxInfo> items )
 | 
			
		||||
    {
 | 
			
		||||
        String url       = HuixiabaoConfig.getUrl();
 | 
			
		||||
        String appId     = HuixiabaoConfig.getAppid();
 | 
			
		||||
        String appSecret = HuixiabaoConfig.getAppSecret();
 | 
			
		||||
        String funId     = HuixiabaoConfig.getFunId();
 | 
			
		||||
        String encKey    = HuixiabaoConfig.getEncKey();
 | 
			
		||||
        String signKey   = HuixiabaoConfig.getSignKey();
 | 
			
		||||
 | 
			
		||||
        SignTypeEnum       signType = SignTypeEnum.SM3;
 | 
			
		||||
        EncryptionModeEnum encType  = EncryptionModeEnum.SM4;
 | 
			
		||||
 | 
			
		||||
        // 发送用工具对象
 | 
			
		||||
        DefaultZephyrClient   client = new DefaultZephyrClient( url,
 | 
			
		||||
                                                                funId,
 | 
			
		||||
                                                                appId,
 | 
			
		||||
                                                                appSecret,
 | 
			
		||||
                                                                signType,
 | 
			
		||||
                                                                signKey,
 | 
			
		||||
                                                                encType,
 | 
			
		||||
                                                                encKey );
 | 
			
		||||
        DefaultZephyrRequest  req    = new DefaultZephyrRequest();
 | 
			
		||||
        DefaultZephyrResponse resp   = null;
 | 
			
		||||
 | 
			
		||||
        // 数据
 | 
			
		||||
        JSONObject         requestObject = new JSONObject();
 | 
			
		||||
        JSONObject         xyxInfo       = null;
 | 
			
		||||
        JSONArray          xyxInfoList   = new JSONArray();
 | 
			
		||||
        Vector<HmbXyxInfo> postedInfo    = new Vector<HmbXyxInfo>(); // 存放已经送出的数据
 | 
			
		||||
 | 
			
		||||
        requestObject.put( "topic", "hmbXyxInfo" );
 | 
			
		||||
 | 
			
		||||
        int request_count = 0; // 计数,每个请求不能超过500条
 | 
			
		||||
        int total_count   = 0;
 | 
			
		||||
 | 
			
		||||
        for ( HmbXyxInfo info : items )
 | 
			
		||||
        {
 | 
			
		||||
            xyxInfo = new JSONObject();
 | 
			
		||||
 | 
			
		||||
            xyxInfo.put( "psnName", info.getPsnName() );
 | 
			
		||||
            xyxInfo.put( "cerno", info.getCertNo() );
 | 
			
		||||
            xyxInfo.put( "serviceId", info.getServiceId() );
 | 
			
		||||
            xyxInfo.put( "status", info.getStatus() );
 | 
			
		||||
            xyxInfo.put( "xyxNo", info.getXyxNo() );
 | 
			
		||||
 | 
			
		||||
            xyxInfoList.add( xyxInfo );
 | 
			
		||||
            postedInfo.add( info );
 | 
			
		||||
 | 
			
		||||
            request_count++;
 | 
			
		||||
            total_count++;
 | 
			
		||||
 | 
			
		||||
            logger.info( "准备数据:" + xyxInfo.toJSONString() );
 | 
			
		||||
 | 
			
		||||
            if ( request_count >= HuixiabaoConfig.getMAX_COUNT_PER_REQUEST() - 1 || total_count == items.size() )
 | 
			
		||||
            {
 | 
			
		||||
                // 达到上限,或者记录已经全部处理,将当前生成的数据送出
 | 
			
		||||
                requestObject.remove( "hmbList" );
 | 
			
		||||
                requestObject.put( "hmbList", xyxInfoList );
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    logger.info( "发送请求内容:" + requestObject.toJSONString() );
 | 
			
		||||
                    
 | 
			
		||||
                    req.setData( requestObject );
 | 
			
		||||
                    resp = client.execute( req );
 | 
			
		||||
 | 
			
		||||
                    logger.info( "发送成功,返回消息:" + resp.getData() );
 | 
			
		||||
 | 
			
		||||
                    // 将已发送的数据从update表中清理掉
 | 
			
		||||
                    removePostedHmbXyxInfo( postedInfo );
 | 
			
		||||
                }
 | 
			
		||||
                catch ( ZephyrApiException error )
 | 
			
		||||
                {
 | 
			
		||||
                    // 发送不成功,记录日志
 | 
			
		||||
                    // 失败的数据就留在update表中,待以后重新发送
 | 
			
		||||
                    logger.error( "发送异常:" + error.getMessage() );
 | 
			
		||||
                }
 | 
			
		||||
                finally
 | 
			
		||||
                {
 | 
			
		||||
                    // 清理清单,重置计数
 | 
			
		||||
                    // 如果发送失败,在HmbXyxInfo_update表中保留发送失败的记录,待下次发送
 | 
			
		||||
                    xyxInfoList.clear();
 | 
			
		||||
                    postedInfo.clear();
 | 
			
		||||
 | 
			
		||||
                    request_count = 0;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								code/cpicxim-XMNHSA-repeater/src/main/resources/log4j2.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								code/cpicxim-XMNHSA-repeater/src/main/resources/log4j2.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<Configuration status="WARN" monitorInterval="300">
 | 
			
		||||
    <Appenders>
 | 
			
		||||
        <Console name="Console" target="SYSTEM_OUT">
 | 
			
		||||
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} ### %msg%n" />
 | 
			
		||||
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
 | 
			
		||||
        </Console>
 | 
			
		||||
        <RollingFile name="rolling_file_win" 
 | 
			
		||||
            filePattern="./logs/huixiabao/$${date:yyyy-MM}/huixiabao-%d{MM-dd-yyyy}-%i.log.gz">
 | 
			
		||||
            <PatternLayout>
 | 
			
		||||
                <Pattern>[%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n</Pattern>
 | 
			
		||||
            </PatternLayout>
 | 
			
		||||
            <Policies>
 | 
			
		||||
                <TimeBasedTriggeringPolicy interval="1" />
 | 
			
		||||
                <SizeBasedTriggeringPolicy size="20MB" />
 | 
			
		||||
                <DefaultRolloverStrategy max="20" />
 | 
			
		||||
            </Policies>
 | 
			
		||||
        </RollingFile>
 | 
			
		||||
        <RollingFile name="rolling_file_linux"
 | 
			
		||||
            filePattern="/logs/huixiabao/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
 | 
			
		||||
            <PatternLayout>
 | 
			
		||||
                <Pattern>[%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n</Pattern>
 | 
			
		||||
            </PatternLayout>
 | 
			
		||||
            <Policies>
 | 
			
		||||
                <TimeBasedTriggeringPolicy interval="1" />
 | 
			
		||||
                <SizeBasedTriggeringPolicy size="20MB" />
 | 
			
		||||
                <DefaultRolloverStrategy max="20" />
 | 
			
		||||
            </Policies>
 | 
			
		||||
        </RollingFile>
 | 
			
		||||
    </Appenders>
 | 
			
		||||
    <Loggers>
 | 
			
		||||
        <!-- <Logger name="mylog" level="info">
 | 
			
		||||
            <AppenderRef ref="rolling_file" />
 | 
			
		||||
        </Logger> -->
 | 
			
		||||
        <Root level="debug">
 | 
			
		||||
            <AppenderRef ref="rolling_file_linux" />
 | 
			
		||||
            <AppenderRef ref="rolling_file_win" />
 | 
			
		||||
            <AppenderRef ref="Console" />
 | 
			
		||||
        </Root>
 | 
			
		||||
    </Loggers>
 | 
			
		||||
</Configuration>
 | 
			
		||||
@@ -0,0 +1,140 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @Date: 2025-03-11 09:27:40
 | 
			
		||||
 * 
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * 
 | 
			
		||||
 * @FilePath: /cpicxim-XMNHSA-repeater/src/test/java/com/cpic/xim/huixiabao/AppTest.java
 | 
			
		||||
 * 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2023} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.huixiabao;
 | 
			
		||||
 | 
			
		||||
import static org.junit.jupiter.api.Assertions.assertTrue;
 | 
			
		||||
 | 
			
		||||
import java.sql.*;
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
 | 
			
		||||
import org.junit.jupiter.api.Test;
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
import com.alibaba.fastjson.JSONArray;
 | 
			
		||||
import com.alibaba.fastjson.JSONObject;
 | 
			
		||||
import com.cpic.xim.huixiabao.data.pojo.HmbXyxInfo;
 | 
			
		||||
import com.cpic.xim.huixiabao.nhs.CpicximToXMNHS;
 | 
			
		||||
 | 
			
		||||
import cn.hsa.zephyr.apisdk.DefaultZephyrClient;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.internal.exception.ZephyrApiException;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.internal.util.encrypt.EncryptionModeEnum;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.internal.util.encrypt.SignTypeEnum;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.request.DefaultZephyrRequest;
 | 
			
		||||
import cn.hsa.zephyr.apisdk.response.DefaultZephyrResponse;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Unit test for simple App.
 | 
			
		||||
 */
 | 
			
		||||
public class AppTest
 | 
			
		||||
{
 | 
			
		||||
    private Logger logger = LoggerFactory.getLogger( AppTest.class );
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Rigorous Test :-)
 | 
			
		||||
     */
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldAnswerWithTrue()
 | 
			
		||||
    {
 | 
			
		||||
        assertTrue( true );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void testLog()
 | 
			
		||||
    {
 | 
			
		||||
        for (
 | 
			
		||||
              int i = 0;
 | 
			
		||||
              i < 10000;
 | 
			
		||||
              i++
 | 
			
		||||
        )
 | 
			
		||||
        {
 | 
			
		||||
            // System.out.print("test!");
 | 
			
		||||
            logger.error( "test!!!!" );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void nhsTest()
 | 
			
		||||
    {
 | 
			
		||||
        String url       = "172.18.1.150:9040";
 | 
			
		||||
        String appId     = "待定";
 | 
			
		||||
        String appSecret = "待定";
 | 
			
		||||
        String funId     = "xxx";
 | 
			
		||||
        String encKey    = "A5B6E00DA599G56C41ABFE23A74E6E60";
 | 
			
		||||
        String signKey   = "待定";
 | 
			
		||||
 | 
			
		||||
        SignTypeEnum       signType = SignTypeEnum.SM3;
 | 
			
		||||
        EncryptionModeEnum encType  = EncryptionModeEnum.SM4;
 | 
			
		||||
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            DefaultZephyrClient client = new DefaultZephyrClient( url,
 | 
			
		||||
                                                                  funId,
 | 
			
		||||
                                                                  appId,
 | 
			
		||||
                                                                  appSecret,
 | 
			
		||||
                                                                  signType,
 | 
			
		||||
                                                                  signKey,
 | 
			
		||||
                                                                  encType,
 | 
			
		||||
                                                                  encKey );
 | 
			
		||||
 | 
			
		||||
            DefaultZephyrRequest  req         = new DefaultZephyrRequest();
 | 
			
		||||
            JSONObject            jsonObject1 = new JSONObject();
 | 
			
		||||
            DefaultZephyrResponse resp        = null;
 | 
			
		||||
 | 
			
		||||
            jsonObject1.put( "code", "XXXXXXXXXXXXXXXXXX" );
 | 
			
		||||
            jsonObject1.put( "scene_code", "XXX" );
 | 
			
		||||
 | 
			
		||||
            req.setData( jsonObject1 );
 | 
			
		||||
            resp = client.execute( req );
 | 
			
		||||
 | 
			
		||||
            System.out.println( resp.getData() );
 | 
			
		||||
        }
 | 
			
		||||
        catch ( ZephyrApiException e )
 | 
			
		||||
        {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void jsonTest()
 | 
			
		||||
    {
 | 
			
		||||
        JSONObject requestObject = new JSONObject();
 | 
			
		||||
        JSONObject item          = new JSONObject();
 | 
			
		||||
        JSONArray  hmbList       = new JSONArray();
 | 
			
		||||
 | 
			
		||||
        requestObject.put( "topic", "hmbXyxInfo" );
 | 
			
		||||
        requestObject.put( "hmbList", hmbList );
 | 
			
		||||
 | 
			
		||||
        item.put( "psnName", "王炜" );
 | 
			
		||||
        item.put( "cerno", "350402198106130016" );
 | 
			
		||||
        item.put( "serviceId", "100007" );
 | 
			
		||||
        item.put( "status", "1" );
 | 
			
		||||
        item.put( "xyxNo", "1234567" );
 | 
			
		||||
 | 
			
		||||
        hmbList.add( item );
 | 
			
		||||
 | 
			
		||||
        String json = requestObject.toJSONString();
 | 
			
		||||
 | 
			
		||||
        System.out.println( json );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void testMysql()
 | 
			
		||||
    { 
 | 
			
		||||
        Vector<HmbXyxInfo> items = CpicximToXMNHS.getNeverTransHmbList();
 | 
			
		||||
 | 
			
		||||
        System.out.println( items.toString() );
 | 
			
		||||
 | 
			
		||||
        assert( items.size() > 0 );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										117
									
								
								code/nginx配置/nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								code/nginx配置/nginx.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,117 @@
 | 
			
		||||
 | 
			
		||||
#user  nobody;
 | 
			
		||||
worker_processes  1;
 | 
			
		||||
 | 
			
		||||
#error_log  logs/error.log;
 | 
			
		||||
#error_log  logs/error.log  notice;
 | 
			
		||||
#error_log  logs/error.log  info;
 | 
			
		||||
 | 
			
		||||
#pid        logs/nginx.pid;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
events {
 | 
			
		||||
    worker_connections  1024;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
http {
 | 
			
		||||
    include       mime.types;
 | 
			
		||||
    default_type  application/octet-stream;
 | 
			
		||||
 | 
			
		||||
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 | 
			
		||||
    #                  '$status $body_bytes_sent "$http_referer" '
 | 
			
		||||
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 | 
			
		||||
 | 
			
		||||
    #access_log  logs/access.log  main;
 | 
			
		||||
 | 
			
		||||
    sendfile        on;
 | 
			
		||||
    #tcp_nopush     on;
 | 
			
		||||
 | 
			
		||||
    #keepalive_timeout  0;
 | 
			
		||||
    keepalive_timeout  65;
 | 
			
		||||
 | 
			
		||||
    #gzip  on;
 | 
			
		||||
 | 
			
		||||
    server {
 | 
			
		||||
        listen       80;
 | 
			
		||||
        server_name  localhost;
 | 
			
		||||
 | 
			
		||||
        #charset koi8-r;
 | 
			
		||||
 | 
			
		||||
        #access_log  logs/host.access.log  main;
 | 
			
		||||
 | 
			
		||||
        location / {
 | 
			
		||||
            root   html;
 | 
			
		||||
            index  index.html index.htm;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #error_page  404              /404.html;
 | 
			
		||||
 | 
			
		||||
        # redirect server error pages to the static page /50x.html
 | 
			
		||||
        #
 | 
			
		||||
        error_page   500 502 503 504  /50x.html;
 | 
			
		||||
        location = /50x.html {
 | 
			
		||||
            root   html;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
 | 
			
		||||
        #
 | 
			
		||||
        #location ~ \.php$ {
 | 
			
		||||
        #    proxy_pass   http://127.0.0.1;
 | 
			
		||||
        #}
 | 
			
		||||
 | 
			
		||||
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 | 
			
		||||
        #
 | 
			
		||||
        #location ~ \.php$ {
 | 
			
		||||
        #    root           html;
 | 
			
		||||
        #    fastcgi_pass   127.0.0.1:9000;
 | 
			
		||||
        #    fastcgi_index  index.php;
 | 
			
		||||
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 | 
			
		||||
        #    include        fastcgi_params;
 | 
			
		||||
        #}
 | 
			
		||||
 | 
			
		||||
        # deny access to .htaccess files, if Apache's document root
 | 
			
		||||
        # concurs with nginx's one
 | 
			
		||||
        #
 | 
			
		||||
        #location ~ /\.ht {
 | 
			
		||||
        #    deny  all;
 | 
			
		||||
        #}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # another virtual host using mix of IP-, name-, and port-based configuration
 | 
			
		||||
    #
 | 
			
		||||
    #server {
 | 
			
		||||
    #    listen       8000;
 | 
			
		||||
    #    listen       somename:8080;
 | 
			
		||||
    #    server_name  somename  alias  another.alias;
 | 
			
		||||
 | 
			
		||||
    #    location / {
 | 
			
		||||
    #        root   html;
 | 
			
		||||
    #        index  index.html index.htm;
 | 
			
		||||
    #    }
 | 
			
		||||
    #}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # HTTPS server
 | 
			
		||||
    #
 | 
			
		||||
    #server {
 | 
			
		||||
    #    listen       443 ssl;
 | 
			
		||||
    #    server_name  localhost;
 | 
			
		||||
 | 
			
		||||
    #    ssl_certificate      cert.pem;
 | 
			
		||||
    #    ssl_certificate_key  cert.key;
 | 
			
		||||
 | 
			
		||||
    #    ssl_session_cache    shared:SSL:1m;
 | 
			
		||||
    #    ssl_session_timeout  5m;
 | 
			
		||||
 | 
			
		||||
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
 | 
			
		||||
    #    ssl_prefer_server_ciphers  on;
 | 
			
		||||
 | 
			
		||||
    #    location / {
 | 
			
		||||
    #        root   html;
 | 
			
		||||
    #        index  index.html index.htm;
 | 
			
		||||
    #    }
 | 
			
		||||
    #}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								code/sql/HmbXyxInfo.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								code/sql/HmbXyxInfo.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
/*
 | 
			
		||||
 Navicat Premium Data Transfer
 | 
			
		||||
 | 
			
		||||
 Source Server         : mysql - 10.39.0.85
 | 
			
		||||
 Source Server Type    : MySQL
 | 
			
		||||
 Source Server Version : 90200
 | 
			
		||||
 Source Host           : 10.39.0.85:3306
 | 
			
		||||
 Source Schema         : huixiabao
 | 
			
		||||
 | 
			
		||||
 Target Server Type    : MySQL
 | 
			
		||||
 Target Server Version : 90200
 | 
			
		||||
 File Encoding         : 65001
 | 
			
		||||
 | 
			
		||||
 Date: 12/03/2025 09:14:18
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
SET NAMES utf8mb4;
 | 
			
		||||
SET FOREIGN_KEY_CHECKS = 0;
 | 
			
		||||
 | 
			
		||||
-- ----------------------------
 | 
			
		||||
-- Table structure for HmbXyxInfo
 | 
			
		||||
-- ----------------------------
 | 
			
		||||
DROP TABLE IF EXISTS `HmbXyxInfo`;
 | 
			
		||||
CREATE TABLE `HmbXyxInfo`  (
 | 
			
		||||
  `hmbListIndex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'hmbList的索引,由timestamp和hmbList的hash值组成。',
 | 
			
		||||
  `psnName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',
 | 
			
		||||
  `certno` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '证件号',
 | 
			
		||||
  `serviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '服务id',
 | 
			
		||||
  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单状态',
 | 
			
		||||
  `xyxNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键id',
 | 
			
		||||
  PRIMARY KEY (`xyxNo`) USING BTREE
 | 
			
		||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'HmbXyxInfo的子表。\r\n保存hmbList集合的元素。' ROW_FORMAT = Dynamic;
 | 
			
		||||
 | 
			
		||||
SET FOREIGN_KEY_CHECKS = 1;
 | 
			
		||||
							
								
								
									
										24
									
								
								code/sql/触发器.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								code/sql/触发器.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
drop TRIGGER  xyxinfo_insert;
 | 
			
		||||
CREATE TRIGGER xyxinfo_insert after INSERT ON huixiabao.HmbXyxInfo FOR EACH ROW
 | 
			
		||||
BEGIN
 | 
			
		||||
	delete from huixiabao.HmbXyxInfo_Update u where u.xyxNo = NEW.xyxNo;
 | 
			
		||||
		INSERT INTO huixiabao.HmbXyxInfo_Update ( xyxNo, update_time )
 | 
			
		||||
	VALUES
 | 
			
		||||
		(
 | 
			
		||||
			new.xyxNo,
 | 
			
		||||
		SYSDATE());
 | 
			
		||||
 | 
			
		||||
END;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
drop trigger xyxinfo_update;
 | 
			
		||||
create trigger xyxinfo_update after update on huixiabao.HmbXyxInfo FOR EACH ROW
 | 
			
		||||
BEGIN
 | 
			
		||||
	delete from huixiabao.HmbXyxInfo_Update u where u.xyxNo = NEW.xyxNo;
 | 
			
		||||
		INSERT INTO huixiabao.HmbXyxInfo_Update ( xyxNo, update_time )
 | 
			
		||||
	VALUES
 | 
			
		||||
		(
 | 
			
		||||
			new.xyxNo,
 | 
			
		||||
		SYSDATE());
 | 
			
		||||
 | 
			
		||||
END;
 | 
			
		||||
							
								
								
									
										9
									
								
								文档/request.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								文档/request.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
    "chs_fjs_appid": "",
 | 
			
		||||
    "chs_fjs_appsecret": "",
 | 
			
		||||
    "chs_fjs_token": "",
 | 
			
		||||
    "chs_fjs_funid": "",
 | 
			
		||||
    "chs_fjs_timestamp": "",
 | 
			
		||||
    "chs_fjs_encdata": "",
 | 
			
		||||
    "chs_fjs_sign": ""
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								文档/sm2_expl.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								文档/sm2_expl.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
{
 | 
			
		||||
    "appId": "43AF047BBA47FC8A1AE8EFB232BDBBCB",
 | 
			
		||||
    "data": {
 | 
			
		||||
        "appId": "43AF047BBA47FC8A1AE8EFB232BDBBCB",
 | 
			
		||||
        "appUserId": "o8z4C5avQXqC0aWFPf1Mzu6D7WCQ_bd",
 | 
			
		||||
        "idNo": "350181199011193519",
 | 
			
		||||
        "idType": "01",
 | 
			
		||||
        "phoneNumber": "13763873033",
 | 
			
		||||
        "userName": "测试"
 | 
			
		||||
    },
 | 
			
		||||
    "encType": "SM4",
 | 
			
		||||
    "signData": "URVQNdVNn5mz2EhKZhLTlXNwAWTSncFoSe8Ilx7jhn81eABJ46sdRRN1ZiAiQjPUTixG9bwqEhiJupHRGmyO5w==",
 | 
			
		||||
    "signType": "SM2",
 | 
			
		||||
    "timestamp": "20200207175759",
 | 
			
		||||
    "transType": "ec.gen.index",
 | 
			
		||||
    "version": "1.0.0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
appId=43AF047BBA47FC8A1AE8EFB232BDBBCB&data=
 | 
			
		||||
{
 | 
			
		||||
    "appId":"43AF047BBA47FC8A1AE8EFB232BDBBCB",
 | 
			
		||||
    "appUserId":"o8z4C5avQXqC0aWFPf1Mzu6D7WCQ_bd",
 | 
			
		||||
    "idNo":"350181199011193519",
 | 
			
		||||
    "idType":"01",
 | 
			
		||||
    "phoneNumber":"13763873033",
 | 
			
		||||
    "userName":"测试"
 | 
			
		||||
}
 | 
			
		||||
&encType=SM4
 | 
			
		||||
&signType=SM2
 | 
			
		||||
×tamp=20200207175759
 | 
			
		||||
&transType=ec.gen.index
 | 
			
		||||
&version=1.0.0
 | 
			
		||||
&key=4117E877F5FA0A0188891283E4B617D5
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								文档/地址.xlsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								文档/地址.xlsx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										23
									
								
								文档/接口/医保局接口sdk与示例/java-sdk使用例子.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								文档/接口/医保局接口sdk与示例/java-sdk使用例子.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
 public static void main(String[] args) {
 | 
			
		||||
        String url = "";
 | 
			
		||||
        String appId = "待定";
 | 
			
		||||
        String appSecret = "待定";
 | 
			
		||||
        String funId = "xxx";
 | 
			
		||||
        SignTypeEnum signType = SignTypeEnum.SM3;
 | 
			
		||||
        String signKey = "待定";
 | 
			
		||||
        EncryptionModeEnum encType = EncryptionModeEnum.SM4;
 | 
			
		||||
        String encKey = "A5B6E00DA599G56C41ABFE23A74E6E60";
 | 
			
		||||
        try {
 | 
			
		||||
            DefaultZephyrClient client = new DefaultZephyrClient(url, funId, appId, appSecret,
 | 
			
		||||
                    signType, signKey, encType, encKey);
 | 
			
		||||
            DefaultZephyrRequest req = new DefaultZephyrRequest();
 | 
			
		||||
            JSONObject jsonObject1 = new JSONObject();
 | 
			
		||||
            jsonObject1.put("code", "XXXXXXXXXXXXXXXXXX");
 | 
			
		||||
            jsonObject1.put("scene_code", "XXX");
 | 
			
		||||
            req.setData(jsonObject1);
 | 
			
		||||
            DefaultZephyrResponse resp = client.execute(req);
 | 
			
		||||
            System.out.println(resp.getData());
 | 
			
		||||
        } catch (ZephyrApiException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
							
								
								
									
										6
									
								
								文档/接口/医保局接口sdk与示例/测试环境配置说明.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								文档/接口/医保局接口sdk与示例/测试环境配置说明.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
 | 
			
		||||
appid:hxb-tb
 | 
			
		||||
appSecret:60F468FB46170DD4CF6CBECE215DBFC0
 | 
			
		||||
signKey:1A2F447BD0F930798D8031B137EC6E25
 | 
			
		||||
encKey:08307695B1668EB9FD6210250FED874F
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								文档/接口/惠夏保理赔规范v1.4.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								文档/接口/惠夏保理赔规范v1.4.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								文档/接口/惠夏保理赔规范v1.5.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								文档/接口/惠夏保理赔规范v1.5.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								文档/接口/福建医疗保障平台商业补充医疗保险接入规范(全)v1.7-20240925.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								文档/接口/福建医疗保障平台商业补充医疗保险接入规范(全)v1.7-20240925.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user