From 66b8444722cd8dfb998cae8bb49594478dc0b155 Mon Sep 17 00:00:00 2001 From: daichao <1438977546@qq.com> Date: Sat, 21 Jun 2025 10:49:07 +0800 Subject: [PATCH] =?UTF-8?q?TODO=E8=B0=83=E6=95=B4=EF=BC=9B=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=B8=AA=E6=B5=8B=E8=AF=95=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E5=90=8E=E7=BB=AD=E7=BA=BF=E4=B8=8A=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=8E=BB=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../d2d/provtest/ProvTestClient.java | 10 +++--- .../d2d/provtest/controller/ResolveTest.java | 32 +++++++++++++++++++ .../searcher/DrugResolveSearcher.java | 9 ++++++ .../service/IReceiveDataLogService.java | 11 +++++++ .../impl/EventProcessingServiceImpl.java | 2 +- src/main/resources/application.yml | 4 +-- 6 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java create mode 100644 src/main/java/com/alihealth/d2d/provtest/searcher/DrugResolveSearcher.java diff --git a/src/main/java/com/alihealth/d2d/provtest/ProvTestClient.java b/src/main/java/com/alihealth/d2d/provtest/ProvTestClient.java index 067b44a..7be4011 100644 --- a/src/main/java/com/alihealth/d2d/provtest/ProvTestClient.java +++ b/src/main/java/com/alihealth/d2d/provtest/ProvTestClient.java @@ -44,7 +44,7 @@ public class ProvTestClient { /** * 证书地址 */ - private static final String PFX_FILE_PATH = "d2d\\yunnan.pfx"; + private static final String PFX_FILE_PATH = "C:\\Users\\ThinkPad\\Desktop\\pfx证书\\yunnan.pfx"; /** * 证书密码 */ @@ -55,15 +55,13 @@ public class ProvTestClient { private static final String algorithm = "RSA"; - private static final String XML_DIRECTORY = "D:\\tq\\文件\\药监\\省市对接(药品v0.19)-通用版\\数据报文示例\\"; + private static final String XML_DIRECTORY = "C:\\Users\\ThinkPad\\Desktop\\pfx证书\\数据报文示例\\"; +// private static final String XML_DIRECTORY = "C:\\Users\\ThinkPad\\Desktop\\真实接收到的数据集\\"; public static void main(String[] args) throws Exception { //数据文件内容主业务类型 10:基础信息数据 20:应用信息数据 //subType数据文件内容子业务类型 详见:数据类型字典表 基本信息(1011-1019、9001-9002) 应用信息(2011-2020、2051-2053) - String[] subTypes = {"1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "9001", "9002", "2011", "2012", "2013", "2015", "2016", "2017", "2018", "2019", "2051", "2052", "2053"}; - for (String subType : subTypes) { - testProv(subType); - } + testProv("2011"); } public static void testProv(String subType) throws Exception { diff --git a/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java b/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java new file mode 100644 index 0000000..b09d0ba --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java @@ -0,0 +1,32 @@ +package com.alihealth.d2d.provtest.controller; + +import com.alihealth.d2d.provtest.common.AjaxResult; +import com.alihealth.d2d.provtest.searcher.DrugResolveSearcher; +import com.alihealth.d2d.provtest.service.IReceiveDataLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.crypto.BadPaddingException; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import java.io.IOException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; + +@RestController +@RequestMapping("/resolve") +public class ResolveTest { + + @Autowired + private IReceiveDataLogService receiveDataLogService; + + @PostMapping(value = "/resolve") + public AjaxResult resolve(@RequestBody DrugResolveSearcher searcher) throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, InvalidKeySpecException, BadPaddingException, IOException, InvalidKeyException { + receiveDataLogService.resolve(searcher); + return AjaxResult.success(true); + } +} diff --git a/src/main/java/com/alihealth/d2d/provtest/searcher/DrugResolveSearcher.java b/src/main/java/com/alihealth/d2d/provtest/searcher/DrugResolveSearcher.java new file mode 100644 index 0000000..4d3c28e --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/searcher/DrugResolveSearcher.java @@ -0,0 +1,9 @@ +package com.alihealth.d2d.provtest.searcher; + +import lombok.Data; + +@Data +public class DrugResolveSearcher { + + private String eventId; +} diff --git a/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java b/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java index 0b887d2..4137194 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java @@ -1,7 +1,18 @@ package com.alihealth.d2d.provtest.service; import com.alihealth.d2d.provtest.domain.ReceiveDataLog; +import com.alihealth.d2d.provtest.searcher.DrugResolveSearcher; import com.baomidou.mybatisplus.extension.service.IService; +import javax.crypto.BadPaddingException; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import java.io.IOException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; + public interface IReceiveDataLogService extends IService { + + void resolve(DrugResolveSearcher searcher) throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, InvalidKeySpecException, BadPaddingException, IOException, InvalidKeyException; } diff --git a/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java b/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java index b1bd056..12fd8eb 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java @@ -35,7 +35,7 @@ public class EventProcessingServiceImpl { } catch (Exception e) { throw new RuntimeException(e); } - //TODO 需要加上外层的eventId ,与日志表进行关联 + //处理数据时关联到外层的eventId,方便通过日志排查问题 handler.handle(eventS,eventId); }else{ handler.handleBase(xml,eventId); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 93d9253..62412af 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -35,8 +35,8 @@ logging: cert: #本地 - #path: D:\ynyp\药品追溯\d2d\yunnan.pfx +# path: C:\\Users\\ThinkPad\\Desktop\\pfx证书\\yunnan.pfx #服务器 - path: d2d\yunnan.pfx + path: /data/cert/d2d/yunnan.pfx password: 12345678 algorithm: RSA