From 1b1545968ca570770fd176aaa5ef9170a8d00741 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Wed, 12 Mar 2025 17:27:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8F=91=E9=80=81=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=BC=80=E5=A7=8B=E7=BC=96=E5=86=99=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=92=8C=E6=B8=85=E7=90=86=E5=B7=B2=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/cpicxim-XMNHSA-repeater/pom.xml | 85 ++++++++++++++---- .../java/com/cpic/xim/huixiabao/AppMain.java | 42 +++++++++ .../xim/huixiabao/data/pojo/HmbXyxInfo.java | 39 ++++++-- .../xim/huixiabao/nhs/CpicximToXMNHS.java | 74 ++++++++++++++- .../java/com/cpic/xim/huixiabao/AppTest.java | 20 ++++- 文档/地址.xlsx | Bin 10108 -> 10109 bytes 6 files changed, 229 insertions(+), 31 deletions(-) diff --git a/code/cpicxim-XMNHSA-repeater/pom.xml b/code/cpicxim-XMNHSA-repeater/pom.xml index cc4b111..1f905ce 100644 --- a/code/cpicxim-XMNHSA-repeater/pom.xml +++ b/code/cpicxim-XMNHSA-repeater/pom.xml @@ -14,6 +14,8 @@ UTF-8 + 18 + 18 18 @@ -134,18 +136,31 @@ - compile - + - - - + + + maven-surefire-plugin + 3.3.0 + + true + + + + maven-compiler-plugin + 3.13.0 + + + ${project.basedir}/lib + + + + + maven-resources-plugin 3.3.1 @@ -159,13 +174,6 @@ - - maven-surefire-plugin - 3.3.0 - - true - - maven-install-plugin 3.1.2 @@ -174,8 +182,7 @@ maven-deploy-plugin 3.1.2 - + maven-site-plugin 3.12.1 @@ -206,8 +213,48 @@ + --> + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + + + com.cpic.xim.huixiabao.AppMain + + + + + + make-assembly + package + + single + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.4.3 + + com.cpic.xim.huixiabao.AppMain + true + + + + repackage + + repackage + + + - - + \ No newline at end of file diff --git a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/AppMain.java b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/AppMain.java index 472ff2a..9eb5296 100644 --- a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/AppMain.java +++ b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/AppMain.java @@ -13,17 +13,59 @@ */ package com.cpic.xim.huixiabao; +import com.alibaba.fastjson.JSONObject; import com.cpic.xim.huixiabao.data.config.HuixiabaoConfig; + +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; public class AppMain { public static void main( String[] args ) { + String url = HuixiabaoConfig.getUrl(); + String appId = HuixiabaoConfig.getAppid(); + String appSecret = HuixiabaoConfig.getAppSecret(); + String funId = "xxx"; + String encKey = HuixiabaoConfig.getEncKey(); + String signKey = HuixiabaoConfig.getSignKey(); + EncryptionModeEnum encType = EncryptionModeEnum.SM4; SignTypeEnum signType = SignTypeEnum.SM3; + 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( req.toString() ); + } + catch ( Exception e ) + { + System.out.println( "Fuck World!" ); + e.printStackTrace(); + } + System.out.println( "Hello World!" ); } } diff --git a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfo.java b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfo.java index ea7c943..ee5ea05 100644 --- a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfo.java +++ b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfo.java @@ -1,11 +1,15 @@ /* * @Author: Kane + * * @Date: 2025-03-06 14:33:27 + * * @LastEditors: Kane - * @FilePath: /Cpicxim-XMNHSA-Repeater/src/main/java/com/cpicxim/huixiabao/data/pojo/HmbListItem.java + * + * @FilePath: /cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/data/pojo/HmbXyxInfo.java + * * @Description: 小药箱接口参数描述 * - * Copyright (c) ${2023} by Kane, All Rights Reserved. + * Copyright (c) ${2023} by Kane, All Rights Reserved. */ package com.cpic.xim.huixiabao.data.pojo; @@ -17,7 +21,20 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @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; @@ -68,19 +85,25 @@ public class HmbXyxInfo this.xyxNo = xyxNo; } - @JsonProperty("psnName") + @Override + public String toString() + { + return "HmbXyxInfo [psnName=" + psnName + ", certNo=" + certNo + ", serviceId=" + serviceId + ", status=" + status + ", xyxNo=" + xyxNo + "]"; + } + + @JsonProperty( "psnName" ) private String psnName; - @JsonProperty("certno") + @JsonProperty( "certno" ) private String certNo; - @JsonProperty("serviceId") + @JsonProperty( "serviceId" ) private String serviceId; - @JsonProperty("status") + @JsonProperty( "status" ) private String status; - @JsonProperty("xyxNo") + @JsonProperty( "xyxNo" ) private String xyxNo; } \ No newline at end of file diff --git a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java index d47d81c..3dccb45 100644 --- a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java +++ b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java @@ -13,6 +13,11 @@ */ package com.cpic.xim.huixiabao.nhs; +import java.sql.Connection; +import java.sql.DriverManager; +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; @@ -31,22 +36,85 @@ 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 Vector getNeverTransHmbList() + public static Vector getNeverTransHmbList() { Vector items = new Vector(); + 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 ) + { + + } + finally + { + try + { + result.close(); + statement.close(); + connection.close(); + } + catch ( SQLException error ) + { + + } + } return items; } - public void postHmbList( Vector items ) + public static void removePostedHmbXyxInfo( Vector postedItems ) + { + + } + + public static void postHmbList( Vector items ) { String url = HuixiabaoConfig.getUrl(); String appId = HuixiabaoConfig.getAppid(); diff --git a/code/cpicxim-XMNHSA-repeater/src/test/java/com/cpic/xim/huixiabao/AppTest.java b/code/cpicxim-XMNHSA-repeater/src/test/java/com/cpic/xim/huixiabao/AppTest.java index 318ebf7..56e0426 100644 --- a/code/cpicxim-XMNHSA-repeater/src/test/java/com/cpic/xim/huixiabao/AppTest.java +++ b/code/cpicxim-XMNHSA-repeater/src/test/java/com/cpic/xim/huixiabao/AppTest.java @@ -15,11 +15,17 @@ 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; @@ -47,7 +53,9 @@ public class AppTest public void testLog() { for ( - int i = 0; i < 10000; i++ + int i = 0; + i < 10000; + i++ ) { // System.out.print("test!"); @@ -119,4 +127,14 @@ public class AppTest System.out.println( json ); } + + @Test + public void testMysql() + { + Vector items = CpicximToXMNHS.getNeverTransHmbList(); + + System.out.println( items.toString() ); + + assert( items.size() > 0 ); + } } diff --git a/文档/地址.xlsx b/文档/地址.xlsx index bb3c56840b0d8ff603d37a2ab619f2dbb74babe3..fa5da505982c345e0fd1da34a62274e28dd73edd 100644 GIT binary patch delta 1101 zcmV-T1hV`5PW?`>o&g20+?3TmlcNDFe>&07cA&B=2Z9sDyO5l1#U>3&wA-z>f=}T4 z`5LBOS0{>>;s4Kf{_`iFZd4t;fOS=)3q%uwBG96dm0lI-ZZV6`P~<$f%N z6f5vta?f!GjLk?y15%0+X`XG}1Ej!Eg97axrU}L0UJq8eKL>i{z^N*~HQ}Zq?jc)> zojAHTt{RPP+a_(+#|Zf;ewbh1_NT^`?z$3y%C4W9J3kLqE-R21+w$}M?ep~`$G??a ziar|?7Pto)g>7t?ZLi#Cmsg7!Fe+1$W-*z>G+j{2=!6mSnB%=`m@h}58rJ_$oWvyS zh~%8nl${(B_kgm`{qx7mFSGvwwE+nRI)BDf0ssKhlf48keJEUFxj^ zQN~M+PG?zmf1Wl%wY+Coy0>tcs!|eejNCWSVo%~g3ncx%R@M(}kL8>AN+&w1bzUw-yVU!$Zm-c*=K)1?p(TFf0c^57)H+=R0Y4vmzx=TQb0;7X36FlwB}h@{~2 zkX#x~f0^i)HHvIMAO=C`#%)?GNj0l^&>6dBi?WvHT@=JH=)%vCR}a9kG;jjAE#sqnP=#m|KdDV$Q~k zQ7BFQ8Jmw-Pufqauhxnkd=+k|TF*38#Fr%(NSwKT3~`Od#whh~Ymi(w>}q=aKwZfa zGDBqy4jURs;JpXjTV{m?cd!1^w}wV-oT6tQUw6T+ap;7?Fo>RP6Ip_r#?R6EAG0h6 z(Hj9Ull~$=0g979BQpW6lXD}J1+d(d)jpF8Bvb+YlVBu30aufuBrpNilhPzM0sWH+ zB}V~WlTjr>4Sy5>0C;RKb98xZWpk4dBOsH%B@O`%lg=eJ0yGPgPYV^38zw3NZ<9tQ zJOOxbc@BHVSe7aFh^a|G1tu7Ev2#P?9R@Qn|poeM}U!ur)t|f0;4F%eQ zL(}s7EEk4}*20}_4Om};ivmeICQO0W-W!Io6Khc1CBdPCxNNQBK78#88!n#te+qC) z$OTs5x#XVXJuo&S5e-NwMx=SMO%IR)Ljwx5cbFy=e|tSx<^C+_l@q6`{nmt;hPbC} zDGuW3-ne=+c3qcrSsx?hr}$}pd*6>5*LuGz0jS*Xr{T`e!z!0G$g6F+`*`2IedhSL zl1tHNW5NRWAfwQY9kLyj$L#v1GMb?>C21CuNlep~KXDS1 zET*I)l%-jCC&VM5>~sITc=-jh{Q|WC4$Tj-=}-ay0MP^h02lz1!6q7$+5``O=hYaN zgEWcT0xb|UeVl1(Wf37omRws&zrHKVk`=gzTx@cOoSoerYH|H+G~0m>$~FbhlZ-QH zq%BpmDfrJHtCJ6$1r$vwv~8f^FA(_k^8LF-YyDHG0gw?x6AE4IggYy@1{&;1JZOQWKh(;Ff$h0` z6JO~?OSKMqCKB&@WaP`wj`SHNy$!a)L|T*f(vGXVO0QnkY2*>nf0|{4f7-eeB6d{V zT4{wZvD`rr;DM)Y+oW|NkXw98K!Iz6Tfd`*17p0i&-RJ)sJg!ywRgQ-F1&3S`HY$o zoakObKEI$Y$S!z8QBoIZzguRDbVsGiJ@#>m<*%{(DK>kJt)|%Nh^3@s6hrmw#hf3+ z+*5QEb2eU#LTTm)?0m#}(tc8XwN7l{oA4Xe1g4=PzAU-q%=cqOh-mi{!as zSJTr6>PnWJa#mT3!-m|@@je1>9dp8ge^h_zOGBf!UeP0uZ@b{mdh|kJH;A5W60g019BQpW5lXN4K1qxYkeL#~8Bvb+alVK!44Os*L0C;RK zP)h*<6abSE3mOXm0000001yBG0M(PzBsKy3lL{qA0bG+(B|!~-6aWBtY%g_(;@%>004~z`MCf9