diff --git a/pom.xml b/pom.xml index 5c31f27..425837d 100644 --- a/pom.xml +++ b/pom.xml @@ -107,7 +107,7 @@ com.alibaba fastjson - 2.0.4 + 1.2.73 diff --git a/src/main/java/com/glxp/mipsdl/controller/YbApiController.java b/src/main/java/com/glxp/mipsdl/controller/YbApiController.java index 5e8bc4c..fb01a9c 100644 --- a/src/main/java/com/glxp/mipsdl/controller/YbApiController.java +++ b/src/main/java/com/glxp/mipsdl/controller/YbApiController.java @@ -1,10 +1,18 @@ package com.glxp.mipsdl.controller; +import cn.hsa.zephyr.apisdk.ZephyrMedicalClient; +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.ZephyrMedicalRequest; +import cn.hsa.zephyr.apisdk.response.ChsMedicalResponse; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.glxp.mipsdl.dao.basic.BasicUdirelDao; import com.glxp.mipsdl.entity.basic.BasicUdirelEntity; @@ -43,7 +51,8 @@ public class YbApiController { public BaseResponse getYb1201(@RequestBody BaseYljg1201Request baseYljg1201Request) { String jsonStr = JSONUtil.toJsonStr(baseYljg1201Request); log.error("【1201】医药机构信息获取请求参数:" + jsonStr); - return ResultVOUtils.success(ybClient.ybPost("1201", jsonStr)); + JSONObject dataJson = JSONObject.parseObject(jsonStr); + return ResultVOUtils.success(ybClient.ybPost("1201", dataJson)); } @@ -54,7 +63,8 @@ public class YbApiController { public BaseResponse getYb1301(@RequestBody DictRequest dictRequest) { String jsonStr = JSONUtil.toJsonStr(dictRequest.getData()); log.error("【1301】通用字典下载接口请求参数:" + jsonStr); - return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), jsonStr)); + JSONObject dataJson = JSONObject.parseObject(jsonStr); + return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), dataJson)); } @@ -64,21 +74,65 @@ public class YbApiController { @PostMapping("/udiwms/erp/yb/order/upload/test") public BaseResponse testUpload(@RequestBody DictRequest dictRequest) { String jsonStr = JSONUtil.toJsonStr(dictRequest.getOrder()); - return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), jsonStr)); + JSONObject dataJson = JSONObject.parseObject(jsonStr); +// JSONArray jsonObject = dataJson.getJSONArray("selinfoDetail"); + return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), dataJson)); } @PostMapping("/udiwms/erp/yb/sign") public BaseResponse signNo(@RequestBody BaseYbRequest baseYbRequest) { SignRequest signRequest = baseYbRequest.getSignIn(); - signRequest.setCurrenttime(DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN)); - String password = signRequest.getCurrenttime() + signRequest.getPassword(); - // 该字符串通过32位的MD5算法加密(字母大写)生成密文86B31EDFE60F7BA28765DF860D56B7B2 - password = SecureUtil.md5(password).toUpperCase(); - signRequest.setPassword(password); +// signRequest.setCurrenttime(DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN)); +// String password = signRequest.getCurrenttime() + signRequest.getPassword(); +// // 该字符串通过32位的MD5算法加密(字母大写)生成密文86B31EDFE60F7BA28765DF860D56B7B2 +// password = SecureUtil.md5(password).toUpperCase(); +// signRequest.setPassword(password); String jsonStr = JSONUtil.toJsonStr(baseYbRequest); log.error("【1201】医药机构信息获取请求参数:" + jsonStr); - return ResultVOUtils.success(ybClient.ybPost("9001", jsonStr)); + JSONObject dataJson = JSONObject.parseObject(jsonStr); + return ResultVOUtils.success(ybClient.ybPost("9001", dataJson)); + } + + @PostMapping("/udiwms/erp/yb/test") + public ChsMedicalResponse test() { + String url = "http://api.fj.hsip.gov.cn/sias/base/api/gafe/rest"; + String appId = "H35062500006"; + String appSecret = "2156B331D45F53B02BFF05C3942E60D7"; + String infno = "9001"; + SignTypeEnum signType = SignTypeEnum.SM3; + String signKey = "C9C9F54F74BD35DE5242885762E99E8E"; + EncryptionModeEnum encType = EncryptionModeEnum.SM4; + String encKey = "D9C9F54F74BD35DE5242885762E99E8E"; + try { + ZephyrMedicalClient client = new ZephyrMedicalClient(url, infno, appId, appSecret, signType, signKey, encType, encKey); + ZephyrMedicalRequest req = new ZephyrMedicalRequest(); + req.setMsgid("H35062500006202405301706277464"); + req.setMdtrtAreaAdmdvs("350625"); + req.setInsuplcAdmdvs("350625"); + req.setOpter("测试"); + req.setOpterType("1"); + req.setOpterName("测试"); + req.setInfTime("2024-05-30 17:17:11"); + req.setFixmedinsCode("H35062500006"); + req.setFixmedinsName("漳州市长泰区医院"); + JSONObject data = new JSONObject(); + JSONObject params = new JSONObject(); + data.put("opter_no", "178823"); + data.put("opterNo", "178823"); + data.put("ip", "10.3.53.4"); + data.put("mac", "40-A5-EF-22-93-A9"); + params.put("signIn", data); + req.setInput(params); + ChsMedicalResponse resp = client.execute(req); + log.error(resp.getInfCode());//错误码 + log.error(resp.getErrMsg()); // 错误信息 + log.error(resp.getOutput()); //回参对象 + return resp; + } catch (ZephyrApiException e) { + e.printStackTrace(); + } + return null; } @@ -163,7 +217,8 @@ public class YbApiController { BaseXsck3505Request baseXsck3505Request = new BaseXsck3505Request(); baseXsck3505Request.setSelinfoDetail(xsck3505Requests); String jsonStr = JSONUtil.toJsonStr(baseXsck3505Request); - ybClient.ybPost("3505A", jsonStr); + JSONObject dataJson = JSONObject.parseObject(jsonStr); + ybClient.ybPost("3505A", dataJson); } } } diff --git a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java index 4397e80..977c857 100644 --- a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java +++ b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java @@ -70,10 +70,10 @@ public class VInsurNationGoodsPhysic implements Serializable { private String MANU_LOTNUM; @TableField(value = "MANU_DATE") - private Date MANU_DATE; + private String MANU_DATE; @TableField(value = "EXPY_END") - private Date EXPY_END; + private String EXPY_END; @TableField(value = "RX_FLAG") private String RX_FLAG; @@ -109,7 +109,7 @@ public class VInsurNationGoodsPhysic implements Serializable { private Integer SEL_RETN_CNT; @TableField(value = "SEL_RETN_TIME") - private Date SEL_RETN_TIME; + private String SEL_RETN_TIME; @TableField(value = "SEL_RETN_OPTER_NAME") private String SEL_RETN_OPTER_NAME; diff --git a/src/main/java/com/glxp/mipsdl/req/yb/DictRequest.java b/src/main/java/com/glxp/mipsdl/req/yb/DictRequest.java index 2c30aa8..07b6633 100644 --- a/src/main/java/com/glxp/mipsdl/req/yb/DictRequest.java +++ b/src/main/java/com/glxp/mipsdl/req/yb/DictRequest.java @@ -2,6 +2,8 @@ package com.glxp.mipsdl.req.yb; import lombok.Data; +import java.util.List; + @Data public class DictRequest { @@ -10,6 +12,8 @@ public class DictRequest { BaseXsck3505Request order; + private List list; + @Data public static class DataInfo { private String ver; diff --git a/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java b/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java index 159ad90..6d871e4 100644 --- a/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java +++ b/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java @@ -117,12 +117,12 @@ public class Xsck3505Request { /** * 生产日期 */ - private Date manu_date; + private String manu_date; /** * 有效期止 */ - private Date expy_end; + private String expy_end; /** * 处方药标志 @@ -183,7 +183,7 @@ public class Xsck3505Request { /** * 销售/退货时间 */ - private Date sel_retn_time; + private String sel_retn_time; /** * 销售/退货经办人姓名 diff --git a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java index 4ff5fe9..6014eec 100644 --- a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java +++ b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java @@ -23,7 +23,7 @@ public class YbClient { @Resource ThrYbSetupService thrYbSetupService; - public ChsMedicalResponse ybPost(String apiNo, String data) { + public ChsMedicalResponse ybPost(String apiNo, JSONObject data) { log.info("[" + apiNo + "]医保接口请求参数:" + data); ThrYbSetup thrYbSetup = thrYbSetupService.getSetUp(); @@ -47,9 +47,9 @@ public class YbClient { req.setInfTime(DateUtil.formatDateTime(new Date())); req.setFixmedinsCode(thrYbSetup.getFixmedins_code()); req.setFixmedinsName(thrYbSetup.getFixmedins_name()); - com.alibaba.fastjson.JSONObject dataJson = JSONObject.parseObject(data, com.alibaba.fastjson.JSONObject.class); - req.setInput(dataJson); -// req.setSignNo(thrYbSetup.getSignNo()); + + req.setInput(data); + req.setSignNo(thrYbSetup.getSignNo()); log.info("【" + apiNo + "】医保接口请求参数:" + JSONObject.toJSONString(req)); ChsMedicalResponse resp = client.execute(req); return resp;