医保模块更新
This commit is contained in:
parent
b299ae021f
commit
a4992af643
|
@ -11,8 +11,8 @@ import org.springframework.stereotype.Component;
|
|||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "dpkj.chs")
|
||||
public class ChsConfig {
|
||||
@ConfigurationProperties(prefix = "dpkj.chs.pad")
|
||||
public class PadChsConfig {
|
||||
|
||||
/**
|
||||
* 医保机构代码
|
|
@ -0,0 +1,38 @@
|
|||
package com.dpkj.common.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @Auther: 萧道子
|
||||
* @Date: 2024/4/28 14:55
|
||||
* @Description:
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "dpkj.chs.yn")
|
||||
public class YnChsConfig {
|
||||
|
||||
/**
|
||||
* 医保接口地址
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 医保机构编码
|
||||
*/
|
||||
private String fixmedinsCode;
|
||||
|
||||
/**
|
||||
* 服务商统一社会信用代码
|
||||
*/
|
||||
private String infosyscode;
|
||||
|
||||
/**
|
||||
* 服务商ID码
|
||||
*/
|
||||
private String infosyssign;
|
||||
|
||||
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
package com.dpkj.modules.chs.dll;
|
||||
|
||||
import com.jacob.activeX.ActiveXComponent;
|
||||
import com.sun.jna.Library;
|
||||
import com.sun.jna.Native;
|
||||
import com.sun.jna.Pointer;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* @Auther: 萧道子
|
||||
* @Date: 2025/3/22 17:48
|
||||
* @Description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class HispayDll {
|
||||
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.constant;
|
||||
package com.dpkj.modules.chs.hispad.constant;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
|
@ -1,13 +1,13 @@
|
|||
package com.dpkj.modules.chs.controller;
|
||||
package com.dpkj.modules.chs.hispad.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.dpkj.common.vo.Result;
|
||||
import com.dpkj.common.vo.ResultData;
|
||||
import com.dpkj.modules.chs.constant.ChsPayStateConst;
|
||||
import com.dpkj.modules.chs.service.IHispayService;
|
||||
import com.dpkj.modules.chs.vo.OutpatientBeginModel;
|
||||
import com.dpkj.modules.chs.vo.OutpatientFinalModel;
|
||||
import com.dpkj.modules.chs.hispad.constant.ChsPayStateConst;
|
||||
import com.dpkj.modules.chs.hispad.service.IHispayService;
|
||||
import com.dpkj.modules.chs.hispad.vo.OutpatientBeginModel;
|
||||
import com.dpkj.modules.chs.hispad.vo.OutpatientFinalModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
|
@ -1,9 +1,9 @@
|
|||
package com.dpkj.modules.chs.service;
|
||||
package com.dpkj.modules.chs.hispad.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.dpkj.common.vo.ResultData;
|
||||
import com.dpkj.modules.chs.vo.OutpatientBeginModel;
|
||||
import com.dpkj.modules.chs.vo.OutpatientFinalModel;
|
||||
import com.dpkj.modules.chs.hispad.vo.OutpatientBeginModel;
|
||||
import com.dpkj.modules.chs.hispad.vo.OutpatientFinalModel;
|
||||
|
||||
public interface IHispayService {
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
package com.dpkj.modules.chs.service.impl;
|
||||
package com.dpkj.modules.chs.hispad.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.XmlUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.dpkj.common.config.ChsConfig;
|
||||
import com.dpkj.common.config.PadChsConfig;
|
||||
import com.dpkj.common.config.HisConfig;
|
||||
import com.dpkj.common.vo.ResultData;
|
||||
import com.dpkj.modules.chs.constant.ChsPayStateConst;
|
||||
import com.dpkj.modules.chs.service.IHispayService;
|
||||
import com.dpkj.modules.chs.vo.OutpatientBeginModel;
|
||||
import com.dpkj.modules.chs.vo.OutpatientFinalModel;
|
||||
import com.dpkj.modules.chs.hispad.constant.ChsPayStateConst;
|
||||
import com.dpkj.modules.chs.hispad.service.IHispayService;
|
||||
import com.dpkj.modules.chs.hispad.vo.OutpatientBeginModel;
|
||||
import com.dpkj.modules.chs.hispad.vo.OutpatientFinalModel;
|
||||
import com.jacob.activeX.ActiveXComponent;
|
||||
import com.jacob.com.Dispatch;
|
||||
import com.jacob.com.Variant;
|
||||
|
@ -37,7 +37,7 @@ public class HispayServiceImpl implements IHispayService {
|
|||
@Autowired
|
||||
private HisConfig hisConfig;
|
||||
@Autowired
|
||||
private ChsConfig chsConfig;
|
||||
private PadChsConfig chsPadConfig;
|
||||
|
||||
// COM对象
|
||||
private static ActiveXComponent dispatch;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.vo;
|
||||
package com.dpkj.modules.chs.hispad.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.vo;
|
||||
package com.dpkj.modules.chs.hispad.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.constant;
|
||||
package com.dpkj.modules.chs.padchs.constant;
|
||||
|
||||
import lombok.Getter;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.constant;
|
||||
package com.dpkj.modules.chs.padchs.constant;
|
||||
|
||||
public interface NationECCodeConst {
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package com.dpkj.modules.chs.controller;
|
||||
package com.dpkj.modules.chs.padchs.controller;
|
||||
|
||||
import com.dpkj.common.vo.Result;
|
||||
import com.dpkj.modules.chs.model.ChsModel;
|
||||
import com.dpkj.modules.chs.response.ChsCheckResponse;
|
||||
import com.dpkj.modules.chs.response.ChsQrcodeResponse;
|
||||
import com.dpkj.modules.chs.service.IPadChsPayService;
|
||||
import com.dpkj.modules.chs.padchs.model.ChsModel;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsCheckResponse;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsQrcodeResponse;
|
||||
import com.dpkj.modules.chs.padchs.service.IPadChsPayService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.dll;
|
||||
package com.dpkj.modules.chs.padchs.dll;
|
||||
|
||||
import com.sun.jna.Library;
|
||||
import com.sun.jna.Native;
|
||||
|
@ -29,7 +29,7 @@ public class PadChsPayDll {
|
|||
|
||||
return dll;
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
log.info("[PadChsPayDll][instance][医保动态库] SDK注册失败:{}", e.getMessage());
|
||||
log.info("[PadChsPayDll][instance][国家级医保动态库] SDK注册失败:{}", e.getMessage());
|
||||
throw new DllRegistrationException("Failed to load PadChsPayDll library: ", e);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.model;
|
||||
package com.dpkj.modules.chs.padchs.model;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.request;
|
||||
package com.dpkj.modules.chs.padchs.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.request;
|
||||
package com.dpkj.modules.chs.padchs.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.request;
|
||||
package com.dpkj.modules.chs.padchs.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.request;
|
||||
package com.dpkj.modules.chs.padchs.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.request;
|
||||
package com.dpkj.modules.chs.padchs.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.request;
|
||||
package com.dpkj.modules.chs.padchs.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.response;
|
||||
package com.dpkj.modules.chs.padchs.response;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.response;
|
||||
package com.dpkj.modules.chs.padchs.response;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.response;
|
||||
package com.dpkj.modules.chs.padchs.response;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,4 +1,4 @@
|
|||
package com.dpkj.modules.chs.response;
|
||||
package com.dpkj.modules.chs.padchs.response;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
|
@ -1,8 +1,8 @@
|
|||
package com.dpkj.modules.chs.service;
|
||||
package com.dpkj.modules.chs.padchs.service;
|
||||
|
||||
import com.dpkj.modules.chs.model.ChsModel;
|
||||
import com.dpkj.modules.chs.response.ChsCheckResponse;
|
||||
import com.dpkj.modules.chs.response.ChsQrcodeResponse;
|
||||
import com.dpkj.modules.chs.padchs.model.ChsModel;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsCheckResponse;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsQrcodeResponse;
|
||||
|
||||
public interface IPadChsPayService {
|
||||
|
|
@ -1,25 +1,25 @@
|
|||
package com.dpkj.modules.chs.service.impl;
|
||||
package com.dpkj.modules.chs.padchs.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import com.dpkj.common.config.ChsConfig;
|
||||
import com.dpkj.common.config.PadChsConfig;
|
||||
import com.dpkj.common.utils.IDGenerator;
|
||||
import com.dpkj.modules.chs.constant.ChsDictEnum;
|
||||
import com.dpkj.modules.chs.constant.NationECCodeConst;
|
||||
import com.dpkj.modules.chs.dll.PadChsPayDll;
|
||||
import com.dpkj.modules.chs.model.ChsModel;
|
||||
import com.dpkj.modules.chs.request.ChsAuthRequest;
|
||||
import com.dpkj.modules.chs.request.ChsCheckRequest;
|
||||
import com.dpkj.modules.chs.request.ChsQrcodeRequest;
|
||||
import com.dpkj.modules.chs.request.ChsRequestCommon;
|
||||
import com.dpkj.modules.chs.response.ChsAuthResponse;
|
||||
import com.dpkj.modules.chs.response.ChsCheckResponse;
|
||||
import com.dpkj.modules.chs.response.ChsQrcodeResponse;
|
||||
import com.dpkj.modules.chs.response.ChsResponseCommon;
|
||||
import com.dpkj.modules.chs.service.IPadChsPayService;
|
||||
import com.dpkj.modules.chs.padchs.constant.ChsDictEnum;
|
||||
import com.dpkj.modules.chs.padchs.constant.NationECCodeConst;
|
||||
import com.dpkj.modules.chs.padchs.dll.PadChsPayDll;
|
||||
import com.dpkj.modules.chs.padchs.model.ChsModel;
|
||||
import com.dpkj.modules.chs.padchs.request.ChsAuthRequest;
|
||||
import com.dpkj.modules.chs.padchs.request.ChsCheckRequest;
|
||||
import com.dpkj.modules.chs.padchs.request.ChsQrcodeRequest;
|
||||
import com.dpkj.modules.chs.padchs.request.ChsRequestCommon;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsAuthResponse;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsCheckResponse;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsQrcodeResponse;
|
||||
import com.dpkj.modules.chs.padchs.response.ChsResponseCommon;
|
||||
import com.dpkj.modules.chs.padchs.service.IPadChsPayService;
|
||||
import com.sun.jna.Memory;
|
||||
import com.sun.jna.Pointer;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -40,17 +40,17 @@ public class PadChsPayServiceImpl implements IPadChsPayService {
|
|||
private PadChsPayDll.EcDll dll;
|
||||
|
||||
@Autowired
|
||||
private ChsConfig chsConfig;
|
||||
private PadChsConfig chsPadConfig;
|
||||
|
||||
|
||||
@PostConstruct
|
||||
public void postConstruct() {
|
||||
log.info("[PadChsPayServiceImpl][postConstruct][Ali医保DLL] 初始化动态链接库");
|
||||
log.info("[PadChsPayServiceImpl][postConstruct][PAD医保DLL] 初始化动态链接库");
|
||||
try {
|
||||
dll = PadChsPayDll.instance();
|
||||
} catch (PadChsPayDll.DllRegistrationException e) {
|
||||
log.error("[PadChsPayServiceImpl][postConstruct][PAD保DLL] 加载失败:{}", e.getMessage());
|
||||
throw new RuntimeException("Ali医保DLL库加载失败:" + e.getMessage(), e);
|
||||
log.error("[PadChsPayServiceImpl][postConstruct][PAD医保DLL] 加载失败:{}", e.getMessage());
|
||||
throw new RuntimeException("PAD医保DLL库加载失败:" + e.getMessage(), e);
|
||||
}
|
||||
initPrinter();
|
||||
}
|
||||
|
@ -67,22 +67,22 @@ public class PadChsPayServiceImpl implements IPadChsPayService {
|
|||
// 封装入参
|
||||
String outBizNo = IDGenerator.getSnowflakeIdToStr();
|
||||
ChsQrcodeRequest data = ChsQrcodeRequest.builder()
|
||||
.orgId(chsConfig.getOrgId())
|
||||
.orgId(chsPadConfig.getOrgId())
|
||||
.outBizNo(outBizNo)
|
||||
.businessType(ChsDictEnum.BusinessType.YY_201.str())
|
||||
.operatorId(chsConfig.getOperatorId())
|
||||
.operatorName(chsConfig.getOperatorName())
|
||||
.officeId(StrUtil.isNotEmpty(val.getOfficeId()) ? val.getOfficeId() : chsConfig.getOfficeId())
|
||||
.officeName(StrUtil.isNotEmpty(val.getOfficeName()) ? val.getOfficeName() : chsConfig.getOfficeName())
|
||||
.operatorId(chsPadConfig.getOperatorId())
|
||||
.operatorName(chsPadConfig.getOperatorName())
|
||||
.officeId(StrUtil.isNotEmpty(val.getOfficeId()) ? val.getOfficeId() : chsPadConfig.getOfficeId())
|
||||
.officeName(StrUtil.isNotEmpty(val.getOfficeName()) ? val.getOfficeName() : chsPadConfig.getOfficeName())
|
||||
.build();
|
||||
ChsRequestCommon request = new ChsRequestCommon(chsConfig.getOrgId(), NationECCodeConst.TRANSTYPE_ALICHS_QRCODEGET, JSONObject.parseObject(data.toString()));
|
||||
ChsRequestCommon request = new ChsRequestCommon(chsPadConfig.getOrgId(), NationECCodeConst.TRANSTYPE_ALICHS_QRCODEGET, JSONObject.parseObject(data.toString()));
|
||||
log.debug("[PadChsPayServiceImpl][getInfoByQrcode][终端医保电子凭证码解码接口] 入参:{}", request.toString());
|
||||
|
||||
DateTime requestTime = DateUtil.date();
|
||||
|
||||
// 调用接口
|
||||
Pointer resp = new Memory(1024 * 10);
|
||||
String resultStr = dll.NationEcTrans(chsConfig.getUrl(), request.toString(), resp);
|
||||
String resultStr = dll.NationEcTrans(chsPadConfig.getUrl(), request.toString(), resp);
|
||||
String response = resp.getString(0, "GB2312");
|
||||
|
||||
DateTime responseTime = DateUtil.date();
|
||||
|
@ -122,22 +122,22 @@ public class PadChsPayServiceImpl implements IPadChsPayService {
|
|||
// 封装入参
|
||||
String outBizNo = IDGenerator.getSnowflakeIdToStr();
|
||||
ChsAuthRequest data = ChsAuthRequest.builder()
|
||||
.orgId(chsConfig.getOrgId())
|
||||
.orgId(chsPadConfig.getOrgId())
|
||||
.outBizNo(outBizNo)
|
||||
.businessType(ChsDictEnum.BusinessType.YY_201.str())
|
||||
.operatorId(chsConfig.getOperatorId())
|
||||
.operatorName(chsConfig.getOperatorName())
|
||||
.officeId(StrUtil.isNotEmpty(val.getOfficeId()) ? val.getOfficeId() : chsConfig.getOfficeId())
|
||||
.officeName(StrUtil.isNotEmpty(val.getOfficeName()) ? val.getOfficeName() : chsConfig.getOfficeName())
|
||||
.operatorId(chsPadConfig.getOperatorId())
|
||||
.operatorName(chsPadConfig.getOperatorName())
|
||||
.officeId(StrUtil.isNotEmpty(val.getOfficeId()) ? val.getOfficeId() : chsPadConfig.getOfficeId())
|
||||
.officeName(StrUtil.isNotEmpty(val.getOfficeName()) ? val.getOfficeName() : chsPadConfig.getOfficeName())
|
||||
.build();
|
||||
ChsRequestCommon request = new ChsRequestCommon(chsConfig.getOrgId(), NationECCodeConst.TRANSTYPE_ALICHS_AUTH, JSONObject.parseObject(data.toString()));
|
||||
ChsRequestCommon request = new ChsRequestCommon(chsPadConfig.getOrgId(), NationECCodeConst.TRANSTYPE_ALICHS_AUTH, JSONObject.parseObject(data.toString()));
|
||||
log.debug("[PadChsPayServiceImpl][chsAuth][刷脸获取医保用户身份授权接口] 入参:{}", request.toString());
|
||||
|
||||
DateTime requestTime = DateUtil.date();
|
||||
|
||||
// 调用接口
|
||||
Pointer resp = new Memory(1024 * 10);
|
||||
String resultStr = dll.NationEcTrans(chsConfig.getUrl(), request.toString(), resp);
|
||||
String resultStr = dll.NationEcTrans(chsPadConfig.getUrl(), request.toString(), resp);
|
||||
String response = resp.getString(0, "GB2312");
|
||||
|
||||
DateTime responseTime = DateUtil.date();
|
||||
|
@ -170,23 +170,23 @@ public class PadChsPayServiceImpl implements IPadChsPayService {
|
|||
// 封装入参
|
||||
String outBizNo = IDGenerator.getSnowflakeIdToStr();
|
||||
ChsCheckRequest data = ChsCheckRequest.builder()
|
||||
.orgId(chsConfig.getOrgId())
|
||||
.orgId(chsPadConfig.getOrgId())
|
||||
.outBizNo(outBizNo)
|
||||
.businessType(ChsDictEnum.BusinessType.YY_201.str())
|
||||
.operatorId(chsConfig.getOperatorId())
|
||||
.operatorName(chsConfig.getOperatorName())
|
||||
.officeId(StrUtil.isNotEmpty(val.getOfficeId()) ? val.getOfficeId() : chsConfig.getOfficeId())
|
||||
.officeName(StrUtil.isNotEmpty(val.getOfficeName()) ? val.getOfficeName() : chsConfig.getOfficeName())
|
||||
.operatorId(chsPadConfig.getOperatorId())
|
||||
.operatorName(chsPadConfig.getOperatorName())
|
||||
.officeId(StrUtil.isNotEmpty(val.getOfficeId()) ? val.getOfficeId() : chsPadConfig.getOfficeId())
|
||||
.officeName(StrUtil.isNotEmpty(val.getOfficeName()) ? val.getOfficeName() : chsPadConfig.getOfficeName())
|
||||
.authNo(authNo)
|
||||
.build();
|
||||
ChsRequestCommon request = new ChsRequestCommon(chsConfig.getOrgId(), NationECCodeConst.TRANSTYPE_ALICHS_AUTHCHECK, JSONObject.parseObject(data.toString()));
|
||||
ChsRequestCommon request = new ChsRequestCommon(chsPadConfig.getOrgId(), NationECCodeConst.TRANSTYPE_ALICHS_AUTHCHECK, JSONObject.parseObject(data.toString()));
|
||||
log.debug("[PadChsPayServiceImpl][chsCheck][刷脸授权获取医保身份接口] 入参:{}", request.toString());
|
||||
|
||||
DateTime requestTime = DateUtil.date();
|
||||
|
||||
// 调用接口
|
||||
Pointer resp = new Memory(1024 * 10);
|
||||
String resultStr = dll.NationEcTrans(chsConfig.getUrl(), request.toString(), resp);
|
||||
String resultStr = dll.NationEcTrans(chsPadConfig.getUrl(), request.toString(), resp);
|
||||
String response = resp.getString(0, "GB2312");
|
||||
|
||||
DateTime responseTime = DateUtil.date();
|
|
@ -0,0 +1,63 @@
|
|||
package com.dpkj.modules.chs.ynchs.dll;
|
||||
|
||||
import com.sun.jna.Library;
|
||||
import com.sun.jna.Native;
|
||||
import com.sun.jna.Pointer;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* @Auther: 萧道子
|
||||
* @Date: 2025/3/22 17:48
|
||||
* @Description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class YnChsPayDll {
|
||||
|
||||
/**
|
||||
* 获取 YnChsPayDll 实例,同时注册 YnChsPayDll 控件。
|
||||
*
|
||||
* @return YnChsPayDll 实例
|
||||
* @throws DllRegistrationException 如果注册控件失败,抛出此异常
|
||||
*/
|
||||
public static EcDll instance() throws DllRegistrationException {
|
||||
try {
|
||||
return Native.load("CHSInterfaceYn", EcDll.class);
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
log.info("[YnChsPayDll][instance][云南省级医保动态库] SDK注册失败:{}", e.getMessage());
|
||||
throw new DllRegistrationException("Failed to load YnChsPayDll library: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 定义自定义异常类,用于表示注册控件时发生的错误
|
||||
*/
|
||||
public static class DllRegistrationException extends Exception {
|
||||
public DllRegistrationException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public DllRegistrationException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 定义接口映射本地库中的函数。
|
||||
*/
|
||||
public interface EcDll extends Library {
|
||||
|
||||
/**
|
||||
* 交易接口调用函数
|
||||
*
|
||||
* @param strUrl : 业务请求地址
|
||||
* @param InData : 交易请求数据 - JSON格式字符串
|
||||
* @param OutData : 交易返回数据 - code为0时,交易成功;否则返回错误信息说明
|
||||
* @return java.lang.String 返回字符串 0000 为动态库调用成功
|
||||
* @author 萧道子 2025/7/30
|
||||
*/
|
||||
String NationEcTrans(String strUrl, String InData, Pointer OutData);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package com.dpkj.modules.chs.ynchs.service;
|
||||
|
||||
/**
|
||||
* @Auther: 萧道子
|
||||
* @Date: 2025/8/7 14:45
|
||||
* @Description:
|
||||
*/
|
||||
public interface IYnChsPayService {
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.dpkj.modules.chs.ynchs.service.impl;
|
||||
|
||||
import com.dpkj.common.config.YnChsConfig;
|
||||
import com.dpkj.modules.chs.ynchs.dll.YnChsPayDll;
|
||||
import com.dpkj.modules.chs.ynchs.service.IYnChsPayService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
/**
|
||||
* @Auther: 萧道子
|
||||
* @Date: 2025/8/7 14:46
|
||||
* @Description:
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class YnChsPayServiceImpl implements IYnChsPayService {
|
||||
|
||||
private YnChsPayDll.EcDll dll;
|
||||
|
||||
@Autowired
|
||||
private YnChsConfig ynChsConfig;
|
||||
|
||||
@PostConstruct
|
||||
public void postConstruct() {
|
||||
log.info("[YnChsPayServiceImpl][postConstruct][云南省局医保DLL] 初始化动态链接库");
|
||||
try {
|
||||
dll = YnChsPayDll.instance();
|
||||
} catch (YnChsPayDll.DllRegistrationException e) {
|
||||
log.error("[YnChsPayServiceImpl][postConstruct][云南省局医保DLL] 加载失败:{}", e.getMessage());
|
||||
throw new RuntimeException("云南省局医保DLL库加载失败:" + e.getMessage(), e);
|
||||
}
|
||||
initPrinter();
|
||||
}
|
||||
|
||||
|
||||
private void initPrinter() {
|
||||
// TODO 萧道子 2025/7/31 :
|
||||
}
|
||||
}
|
|
@ -40,20 +40,32 @@ spring:
|
|||
dpkj:
|
||||
#后端项目访问地址 #https://yinyitong.yzqingyan.cn/ http://172.16.11.13:15946/ ttps://yinyitong.yzqingyan.cn
|
||||
serverurl: http://localhost:5946/api/
|
||||
# 医保配置
|
||||
# 国家统一医保配置
|
||||
chs:
|
||||
# 医保中台接口地址
|
||||
url: http://ec.yn.hsip.gov.cn/localcfc/api/hsecfc/localQrCodeQuery
|
||||
# 医保机构编码
|
||||
org-id: H53082800070
|
||||
# 收款员-编号
|
||||
operator-id: 0001
|
||||
# 收款员-姓名
|
||||
operator-name: admin
|
||||
# 科室-编号
|
||||
office-id: 00031
|
||||
# 科室-名称
|
||||
office-name: 门诊
|
||||
# 医保中台配置
|
||||
pad:
|
||||
# 医保中台接口地址
|
||||
url: http://ec.yn.hsip.gov.cn/localcfc/api/hsecfc/localQrCodeQuery
|
||||
# 医保机构编码
|
||||
org-id: H53082800070
|
||||
# 收款员-编号
|
||||
operator-id: 0001
|
||||
# 收款员-姓名
|
||||
operator-name: admin
|
||||
# 科室-编号
|
||||
office-id: 00031
|
||||
# 科室-名称
|
||||
office-name: 门诊
|
||||
# 云南省级医保配置
|
||||
yn:
|
||||
# 省局医保接口地址
|
||||
url: http://ldjk.yn.hsip.gov.cn/eapdomain/org/local/api/hos/uldFeeInfo
|
||||
# 医保机构编码
|
||||
fixmedins-code: H53082800070
|
||||
# 服务商统一社会信用代码
|
||||
infosyscode: 9150000020285539XU
|
||||
# 服务商ID码
|
||||
infosyssign: 7f6fa92af64a403eb871a3c800cb6946
|
||||
file:
|
||||
# 文件保存地址
|
||||
path: G:\Temp\img
|
||||
|
|
|
@ -29,20 +29,32 @@ dpkj:
|
|||
#后端项目访问地址
|
||||
# 改为正式的地址 http://10.121.1.44/api/ http://172.16.50.20:15946/apitest/ http://www.lczyyy.com/apitest/
|
||||
serverurl: http://10.121.1.44/api/
|
||||
# 医保配置
|
||||
# 国家统一医保配置
|
||||
chs:
|
||||
# 医保中台接口地址
|
||||
url: http://ec.yn.hsip.gov.cn/localcfc/api/hsecfc/localQrCodeQuery
|
||||
# 医保机构编码
|
||||
org-id: H53082800070
|
||||
# 收款员-编号
|
||||
operator-id: 0001
|
||||
# 收款员-姓名
|
||||
operator-name: admin
|
||||
# 科室-编号
|
||||
office-id: 00031
|
||||
# 科室-名称
|
||||
office-name: 门诊
|
||||
# 医保中台配置
|
||||
pad:
|
||||
# 医保中台接口地址
|
||||
url: http://ec.yn.hsip.gov.cn/localcfc/api/hsecfc/localQrCodeQuery
|
||||
# 医保机构编码
|
||||
org-id: H53082800070
|
||||
# 收款员-编号
|
||||
operator-id: 0001
|
||||
# 收款员-姓名
|
||||
operator-name: admin
|
||||
# 科室-编号
|
||||
office-id: 00031
|
||||
# 科室-名称
|
||||
office-name: 门诊
|
||||
# 云南省级医保配置
|
||||
yn:
|
||||
# 省局医保接口地址
|
||||
url: http://ldjk.yn.hsip.gov.cn/eapdomain/org/local/api/hos/uldFeeInfo
|
||||
# 医保机构编码
|
||||
fixmedins-code: H53082800070
|
||||
# 服务商统一社会信用代码
|
||||
infosyscode: 9150000020285539XU
|
||||
# 服务商ID码
|
||||
infosyssign: 7f6fa92af64a403eb871a3c800cb6946
|
||||
file:
|
||||
# 文件保存地址
|
||||
path: D:\Project\Express\upload
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue