Browse Source

修复窗口读电子凭证无法办理医保的问题

lighter 9 months ago
parent
commit
c2334d5427
2 changed files with 16 additions and 3 deletions
  1. 1 1
      pom.xml
  2. 15 2
      src/main/java/thyyxxk/simzfeeoprnsystm/service/SiMzFeeService.java

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>SiMzFeeOprnSystm</artifactId>
-    <version>3.0.0</version>
+    <version>3.0.3</version>
     <name>SiMzFeeOprnSystm</name>
     <description>SiMzFeeOprnSystm</description>
     <properties>

+ 15 - 2
src/main/java/thyyxxk/simzfeeoprnsystm/service/SiMzFeeService.java

@@ -101,7 +101,15 @@ public class SiMzFeeService {
                 regstrtn.setCardSn(out[3]);
             } else if (mdtrtCertType.getCode().equals(MdtrtCertType.ELECTRONIC_VOUCHER.getCode())) {
                 JSONObject qrinfo = JSONObject.parseObject(p.getReadCardResult());
-                regstrtn.setMdtrtCertNo(qrinfo.getString("ecToken"));
+                String ecToken = qrinfo.getString("ecToken");
+                if (StringUtil.isBlank(ecToken)) {
+                    JSONObject qrdata = qrinfo.getJSONObject("data");
+                    if (null == qrdata) {
+                        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "获取读卡信息失败!");
+                    }
+                    ecToken = qrdata.getString("ecToken");
+                }
+                regstrtn.setMdtrtCertNo(ecToken);
             }
         }
 
@@ -358,6 +366,10 @@ public class SiMzFeeService {
             } else if (mdtrtCertType.getCode().equals(MdtrtCertType.ELECTRONIC_VOUCHER.getCode())) {
                 String socialNo = mzDao.selectSocialNo(p.getPatNo());
                 JSONObject qrinfo = JSONObject.parseObject(p.getReadCardResult());
+                JSONObject qrdata = qrinfo.getJSONObject("data");
+                if (null != qrdata) {
+                    qrinfo = qrdata;
+                }
                 if (!Objects.equals(socialNo, qrinfo.getString("idNo").trim())) {
                     return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "电子医保凭证身份证与HIS身份证不一致,请确认是否人证相符。");
                 }
@@ -687,7 +699,8 @@ public class SiMzFeeService {
             mzptnt.setReadCardResult(param.getReadCardResult());
             if (mdtrtCertType.getCode().equals(MdtrtCertType.ELECTRONIC_VOUCHER.getCode())) {
                 JSONObject obj = JSONObject.parseObject(param.getReadCardResult());
-                String admdvs = obj.getString("insuOrg");
+                JSONObject qrdata = obj.getJSONObject("data");
+                String admdvs = qrdata.getString("insuOrg");
                 if (StringUtil.isBlank(mzptnt.getInsuplcAdmdvs())) {
                     mzptnt.setInsuplcAdmdvs(admdvs);
                 }