From 235306ae337219ce1b9b41ceed76e071f1910228 Mon Sep 17 00:00:00 2001 From: xiaodaozi Date: Tue, 17 Jun 2025 14:51:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E4=BF=9D=E8=B0=83=E7=94=A8=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chs/controller/HispayController.java | 11 ++--- .../modules/chs/service/IHispayService.java | 1 - .../chs/service/impl/HispayServiceImpl.java | 43 ++++++++++++------- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/dpkj/modules/chs/controller/HispayController.java b/src/main/java/com/dpkj/modules/chs/controller/HispayController.java index 09c9ad1..2ac6030 100644 --- a/src/main/java/com/dpkj/modules/chs/controller/HispayController.java +++ b/src/main/java/com/dpkj/modules/chs/controller/HispayController.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/chs/hispay") public class HispayController { - private final IHispayService iHispayService; + private final IHispayService hispayService; /** @@ -38,7 +38,7 @@ public class HispayController { @PostMapping("findReadCode") public Result findReadCode() { try { - JSONObject res = iHispayService.readCode(); + JSONObject res = hispayService.readCode(); return Result.ok("成功", res); } catch (Exception e) { e.printStackTrace(); @@ -63,7 +63,7 @@ public class HispayController { throw new RuntimeException("密码不可为空"); } - JSONObject res = iHispayService.readCard(password); + JSONObject res = hispayService.readCard(password); return Result.ok("成功", res); } catch (Exception e) { e.printStackTrace(); @@ -84,7 +84,7 @@ public class HispayController { public Result chsCodeAsOutpatientBegin(@RequestBody @Validated OutpatientBeginModel data) { try { log.info("[HispayController][chsCodeAsOutpatientBegin][门诊缴费-预算-电子医保凭证] 参数:{}", data); - ResultData res = iHispayService.chsCodeAsOutpatientBegin(data); + ResultData res = hispayService.chsCodeAsOutpatientBegin(data); return Result.ok("成功", res); } catch (Exception e) { e.printStackTrace(); @@ -105,7 +105,7 @@ public class HispayController { public Result chsCodeAsOutpatientFinal(@RequestBody @Validated OutpatientFinalModel data) { try { log.info("[HispayController][chsCodeAsOutpatientFinal][门诊缴费-结算-电子医保凭证] 参数:{}", data); - ResultData res = iHispayService.chsCodeAsOutpatientFinal(data); + ResultData res = hispayService.chsCodeAsOutpatientFinal(data); return Result.ok("成功", res); } catch (Exception e) { e.printStackTrace(); @@ -114,4 +114,5 @@ public class HispayController { } } + } diff --git a/src/main/java/com/dpkj/modules/chs/service/IHispayService.java b/src/main/java/com/dpkj/modules/chs/service/IHispayService.java index c9a5aef..cc02f00 100644 --- a/src/main/java/com/dpkj/modules/chs/service/IHispayService.java +++ b/src/main/java/com/dpkj/modules/chs/service/IHispayService.java @@ -43,5 +43,4 @@ public interface IHispayService { */ ResultData chsCodeAsOutpatientFinal(OutpatientFinalModel data); - } diff --git a/src/main/java/com/dpkj/modules/chs/service/impl/HispayServiceImpl.java b/src/main/java/com/dpkj/modules/chs/service/impl/HispayServiceImpl.java index d48a34e..2e8e0de 100644 --- a/src/main/java/com/dpkj/modules/chs/service/impl/HispayServiceImpl.java +++ b/src/main/java/com/dpkj/modules/chs/service/impl/HispayServiceImpl.java @@ -1,6 +1,7 @@ package com.dpkj.modules.chs.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Console; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.XmlUtil; import com.alibaba.fastjson.JSON; @@ -15,11 +16,12 @@ import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; -import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.w3c.dom.Document; +import javax.annotation.PostConstruct; import java.util.Map; @@ -30,11 +32,21 @@ import java.util.Map; */ @Slf4j @Service -@AllArgsConstructor +// @AllArgsConstructor public class HispayServiceImpl implements IHispayService { - private final HisConfig hisConfig; - private final ChsConfig chsConfig; + @Autowired + private HisConfig hisConfig; + @Autowired + private ChsConfig chsConfig; + + // COM对象 + private Dispatch dispatch; + + @PostConstruct + public void postConstruct() { + dispatch = instanceActive(); + } /** * 获取HIS医保实例 @@ -42,14 +54,13 @@ public class HispayServiceImpl implements IHispayService { * @return com.jacob.activeX.ActiveXComponent * @author 萧道子 2025/5/21 */ - private ActiveXComponent instanceActive() { + private Dispatch instanceActive() { try { // 初始化 ComThread.InitSTA(); - // 获取COM对象 - ActiveXComponent active = new ActiveXComponent("PayClient.clsPayClient"); + ActiveXComponent activeXComponent = new ActiveXComponent("PayClient.clsPayClient"); log.info("[HispayServiceImpl][instanceActive][HIS医保COM库] 加载成功"); - return active; + return activeXComponent; } catch (UnsatisfiedLinkError e) { log.info("[HispayServiceImpl][instanceActive][HIS医保COM库] 加载失败:{}", e.getMessage()); throw new RuntimeException("HIS医保COM库加载失败:" + e.getMessage(), e); @@ -120,7 +131,7 @@ public class HispayServiceImpl implements IHispayService { @Override public JSONObject readCode() { // 加载资源 - Dispatch dispatch = instanceActive(); + // Dispatch dispatch = instanceActive(); /** 1、组装参数 */ JSONObject val = new JSONObject() @@ -140,7 +151,7 @@ public class HispayServiceImpl implements IHispayService { log.info("[HispayServiceImpl][readCode][医保读卡-电子凭证] call返回值:{} 结果:{}", call, resStr); // 释放资源 - releaseActive(); + // releaseActive(); /** 3、处理读卡结果 */ JSONObject result = verifyResult(resStr); @@ -154,7 +165,7 @@ public class HispayServiceImpl implements IHispayService { @Override public JSONObject readCard(String password) { // 加载资源 - Dispatch dispatch = instanceActive(); + // Dispatch dispatch = instanceActive(); /** 1、组装参数 */ JSONObject val = new JSONObject() @@ -174,7 +185,7 @@ public class HispayServiceImpl implements IHispayService { log.info("[HispayServiceImpl][readCard][医保读卡-医保卡] call返回值:{} 结果:{}", call, resStr); // 释放资源 - releaseActive(); + // releaseActive(); /** 3、处理读卡结果 */ JSONObject result = verifyResult(resStr); @@ -188,7 +199,7 @@ public class HispayServiceImpl implements IHispayService { private ResultData outpatientBudget(OutpatientBeginModel data) { // 加载资源 - ActiveXComponent dispatch = instanceActive(); + // Dispatch dispatch = instanceActive(); /** 1、组装参数 */ JSONObject val = new JSONObject() @@ -211,7 +222,7 @@ public class HispayServiceImpl implements IHispayService { log.info("[HispayServiceImpl][outpatientBudget][门诊缴费-预算] call返回值:{} 结果:{}", call, resStr); // 释放资源 - releaseActive(); + // releaseActive(); /** 3、处理结果 */ JSONObject result = verifyResult(resStr); @@ -239,7 +250,7 @@ public class HispayServiceImpl implements IHispayService { @Override public ResultData chsCodeAsOutpatientFinal(OutpatientFinalModel data) { // 加载资源 - ActiveXComponent dispatch = instanceActive(); + // ActiveXComponent dispatch = instanceActive(); /** 1、组装参数 */ String requestTime = DateUtil.now(); @@ -262,7 +273,7 @@ public class HispayServiceImpl implements IHispayService { log.info("[HispayServiceImpl][chsCodeAsOutpatientFinal][门诊缴费-结算] call返回值:{} 结果:{}", call, resStr); // 释放资源 - releaseActive(); + // releaseActive(); // TODO BEGIN 萧道子 2025/6/10 : 模拟参数 // String resStr = "01234567892025-06-10 10:23:14";