Browse Source

门诊共济添加读卡类型

lighter 3 years ago
parent
commit
b964ff7cf8

+ 1 - 2
src/main/java/thyyxxk/simzfeeoprnsystm/controller/SiMzFeeController.java

@@ -4,7 +4,6 @@ import thyyxxk.simzfeeoprnsystm.pojo.FundDetail;
 import thyyxxk.simzfeeoprnsystm.pojo.MzPatientInfo;
 import thyyxxk.simzfeeoprnsystm.pojo.SpcChrDiseAcct;
 import thyyxxk.simzfeeoprnsystm.pojo.*;
-import thyyxxk.simzfeeoprnsystm.pojo.onlinepayment.EcTokenParams;
 import thyyxxk.simzfeeoprnsystm.service.SiMzFeeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -58,7 +57,7 @@ public class SiMzFeeController {
     }
 
     @PostMapping("/directRegistration")
-    public ResultVo<FundDetail> directRegistration(@RequestBody EcTokenParams params) {
+    public ResultVo<FundDetail> directRegistration(@RequestBody DirectionRegParam params) {
         return service.directRegistration(params);
     }
 

+ 1 - 1
src/main/java/thyyxxk/simzfeeoprnsystm/dao/SiMzDao.java

@@ -11,7 +11,7 @@ import java.util.List;
 @Mapper
 public interface SiMzDao {
     @Update("update t_si_pat_info set times=#{times} where pat_no=#{patNo} and times=-1")
-    int updateMzTimes(@Param("patNo") String patNo,
+    void updateMzTimes(@Param("patNo") String patNo,
                       @Param("times") int times);
 
     @Select("select * from t_si_pat_info where pat_no=#{patNo} and times=#{times}")

+ 2 - 2
src/main/java/thyyxxk/simzfeeoprnsystm/dicts/MdtrtCertType.java

@@ -41,14 +41,14 @@ public enum MdtrtCertType {
 
     public static MdtrtCertType get(String code) {
         if (StringUtil.isBlank(code)) {
-            return null;
+            return OTHER;
         }
         for (MdtrtCertType mdtrtCertType : MdtrtCertType.values()) {
             if (code.trim().equals(mdtrtCertType.getCode())) {
                 return mdtrtCertType;
             }
         }
-        return null;
+        return OTHER;
     }
 
     public static MdtrtCertType getByLabel(String label) {

+ 2 - 6
src/main/java/thyyxxk/simzfeeoprnsystm/external/WebHisSrvc.java

@@ -6,7 +6,6 @@ import com.dtflys.forest.annotation.Var;
 import thyyxxk.simzfeeoprnsystm.pojo.MzPatientInfo;
 import thyyxxk.simzfeeoprnsystm.pojo.MzReceipt;
 import thyyxxk.simzfeeoprnsystm.pojo.ResultVo;
-import thyyxxk.simzfeeoprnsystm.pojo.onlinepayment.EcTokenParams;
 
 import java.util.List;
 import java.util.Map;
@@ -16,10 +15,7 @@ public interface WebHisSrvc {
     @Post("{url}/siMz/getMzReceipts")
     ResultVo<List<Map<String, Object>>> getMzReceipts(@Var ("url") String url, @JSONBody MzPatientInfo p);
 
-    @Post("{url}/siMz/insertSiMzFees")
-    ResultVo<String> insertSiMzFees(@Var ("url") String url, @JSONBody List<MzReceipt> receipts);
-
-    @Post("{url}/markMtFees/queryInsuinfo")
-    Map<String, Object> queryInsuinfo(@Var ("url") String url, @JSONBody EcTokenParams param);
+    @Post("{url}/siMz/insertSiMzFeesForThmz")
+    ResultVo<String> insertSiMzFeesForThmz(@Var ("url") String url, @JSONBody List<MzReceipt> receipts);
 
 }

+ 16 - 0
src/main/java/thyyxxk/simzfeeoprnsystm/pojo/DirectionRegParam.java

@@ -0,0 +1,16 @@
+package thyyxxk.simzfeeoprnsystm.pojo;
+
+import lombok.Data;
+
+@Data
+public class DirectionRegParam {
+    private String staffId;
+    private String patientId;
+    private Integer times;
+
+    // 个人账户使用标志:1-使用,0-不使用
+    private Integer acctUsedFlag;
+    // 读卡类型:01-电子凭证,02-身份证,3-社保卡
+    private String readCardType;
+    private String readCardResult;
+}

+ 2 - 0
src/main/java/thyyxxk/simzfeeoprnsystm/pojo/FundDetail.java

@@ -14,6 +14,8 @@ public class FundDetail {
     private String acctPay;
     private String cashPay;
     private String selfPay;
+    // 1-市医保,2-省医保,3-异地
+    private Integer cardType;
 
     public void reverseAll() {
         totalCost = "-" + totalCost;

+ 3 - 0
src/main/java/thyyxxk/simzfeeoprnsystm/pojo/MzPatientInfo.java

@@ -51,4 +51,7 @@ public class MzPatientInfo {
         return null == saved ? 0 : saved;
     }
 
+    public String getBalc() {
+        return StringUtil.isBlank(balc) ? "0" : balc;
+    }
 }

+ 0 - 36
src/main/java/thyyxxk/simzfeeoprnsystm/pojo/registration/IdetInfo.java

@@ -1,36 +0,0 @@
-package thyyxxk.simzfeeoprnsystm.pojo.registration;
-
-import lombok.Data;
-
-/**
- * 人员身份信息
- * */
-@Data
-public class IdetInfo {
-    /**
-     * 人员身份类别
-     * */
-    private String psnIdetType;
-
-    /**
-     * 人员类别等级
-     * */
-    private String psnTypeLv;
-
-    /**
-     * 备注
-     * */
-    private String memo;
-
-    /**
-     * 开始时间
-     * */
-    private String begntime;
-
-    /**
-     * 结束时间
-     * */
-    private String endtime;
-
-    private String psnIdetTypeName;
-}

+ 0 - 71
src/main/java/thyyxxk/simzfeeoprnsystm/pojo/registration/InsuInfo.java

@@ -1,71 +0,0 @@
-package thyyxxk.simzfeeoprnsystm.pojo.registration;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-/**
- * @description: 人员参保信息
- * @author: DingJie
- * @create: 2021/7/2814:04
- */
-@Data
-public class InsuInfo {
-    /**
-     * 余额
-     * */
-    private Double balc;
-    
-    /**
-     * 险种类型
-     * */
-    private String insutype;
-    
-    /**
-     * 人员类别
-     * */
-    private String psnType;
-    
-    /**
-     * 人员参保状态
-     * */
-    private String psnInsuStas;
-
-    /**
-     * 个人参保日期
-     * */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date psnInsuDate;
-
-    /**
-     * 暂停参保日期
-     * */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date pausInsuDate;
-    
-    /**
-     * 公务员标志
-     * */
-    private String cvlservFlag;
-    
-    /**
-     * 参保地医保区划
-     * */
-    private String insuplcAdmdvs;
-    
-    /**
-     * 单位名称
-     * */
-    private String empName;
-
-    private String insutypeName;
-    private String psnTypeName;
-    private String psnInsuStasName;
-    private String cvlservFlagName;
-    private String insuplcAdmdvsName;
-    
-}

+ 0 - 101
src/main/java/thyyxxk/simzfeeoprnsystm/pojo/registration/PsnBaseInfo.java

@@ -1,101 +0,0 @@
-package thyyxxk.simzfeeoprnsystm.pojo.registration;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * @description: 人员基本信息
- * @author: DingJie
- * @create: 2021/7/2110:21
- */
-@Data
-public class PsnBaseInfo {
-    /**
-     * 住院号/门诊号
-     */
-    private String patNo;
-
-    /**
-     * 住院次数/门诊次数
-     */
-    private Integer times;
-
-    /**
-     * 账页号(门诊为receiptNo)
-     */
-    private Integer ledgerSn;
-
-    /**
-     * 人员编号
-     * */
-    private String psnNo;
-
-    /**
-     * 人员证件类型
-     * */
-    private String psnCertType;
-
-    /**
-     * 证件号码
-     * */
-    private String certno;
-
-    /**
-     * 人员姓名
-     * */
-    private String psnName;
-
-    /**
-     * 性别
-     * */
-    private String gend;
-
-    /**
-     * 民族
-     * */
-    private String naty;
-    
-    /**
-     * 出生日期
-     * */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date brdy;
-
-    /**
-     * 年龄 
-     * */
-    private Double age;
-
-    /**
-     * 医疗类别
-     * */
-    private String medType;
-
-    /**
-     * 民族名称
-     * */
-    private String natyName;
-
-    /**
-     * 人员身份
-     * */
-    private String psnIdetType;
-
-    /**
-     * 参保信息
-     * */
-    List<InsuInfo> insuinfo;
-
-    /**
-     * 身份信息
-     * */
-    List<IdetInfo> idetinfo;
-
-    private String gendName;
-    private String psnCertTypeName;
-}

+ 26 - 35
src/main/java/thyyxxk/simzfeeoprnsystm/service/SiMzFeeService.java

@@ -12,9 +12,6 @@ import thyyxxk.simzfeeoprnsystm.external.WebHisSrvc;
 import thyyxxk.simzfeeoprnsystm.pojo.*;
 import thyyxxk.simzfeeoprnsystm.pojo.ResultVo;
 import thyyxxk.simzfeeoprnsystm.pojo.SiPatInfo;
-import thyyxxk.simzfeeoprnsystm.pojo.onlinepayment.EcTokenParams;
-import thyyxxk.simzfeeoprnsystm.pojo.registration.InsuInfo;
-import thyyxxk.simzfeeoprnsystm.pojo.registration.PsnBaseInfo;
 import thyyxxk.simzfeeoprnsystm.utils.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -392,6 +389,14 @@ public class SiMzFeeService {
 
     private ResultVo<FundDetail> getFundDetailResultVo(SiSetlinfo sisetl) {
         FundDetail fundDetail = new FundDetail();
+        String insplc = sisetl.getInsuplcAdmdvs();
+        if (insplc.startsWith("4301")) {
+            fundDetail.setCardType(1);
+        } else if (insplc.equals("439900")) {
+            fundDetail.setCardType(2);
+        } else {
+            fundDetail.setCardType(3);
+        }
         fundDetail.setTotalCost(String.valueOf(sisetl.getMedfeeSumamt()));
         fundDetail.setFundPay(String.valueOf(sisetl.getFundPaySumamt()));
         fundDetail.setCashPay(String.valueOf(sisetl.getPsnCashPay()));
@@ -537,24 +542,14 @@ public class SiMzFeeService {
         }
     }
 
-    public ResultVo<FundDetail> directRegistration(EcTokenParams ecpms) {
-        // 查询参保信息
+    public ResultVo<FundDetail> directRegistration(DirectionRegParam param) {
+        mzDao.updateMzTimes(param.getPatientId(), param.getTimes());
         MzPatientInfo mzptnt = new MzPatientInfo();
-        mzptnt.setStaffId(ecpms.getStaffId());
-        mzptnt.setPatNo(ecpms.getPatientId());
-        mzptnt.setTimes(ecpms.getTimes());
-        mzptnt.setAcctUsedFlag(String.valueOf(ecpms.getAcctUsedFlag()));
-        int hasSiPatInfo = mzDao.updateMzTimes(mzptnt.getPatNo(), mzptnt.getTimes());
-        if (hasSiPatInfo == 0) {
-            Map<String, Object> map = webHisSrvc.queryInsuinfo(webHisUrl, ecpms);
-            if (null == map) {
-                return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
-            }
-            if ((int) map.get("code") == -1) {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, map.get("msg").toString());
-            }
-        }
-        // 查询到职工参保信息后挂号登记(执行到这一步,siPatInfo必不为空,所以无需作非空判断)
+        mzptnt.setStaffId(param.getStaffId());
+        mzptnt.setPatNo(param.getPatientId());
+        mzptnt.setTimes(param.getTimes());
+        mzptnt.setAcctUsedFlag(String.valueOf(param.getAcctUsedFlag()));
+
         SiPatInfo siPatInfo = mzDao.selectSiPatInfoForMz(mzptnt.getPatNo(), mzptnt.getTimes());
         mzptnt.setInsuplcAdmdvs(siPatInfo.getInsuplcAdmdvs());
         mzptnt.setInsutype(siPatInfo.getInsutype());
@@ -562,10 +557,11 @@ public class SiMzFeeService {
         mzptnt.setName(siPatInfo.getPsnName());
         mzptnt.setSocialNo(siPatInfo.getCertno());
 
-        if (StringUtil.notBlank(ecpms.getEcIndexNo())) {
-            mzptnt.setMdtrtCertType(MdtrtCertType.MEDICAL_INSURANCE_ELECTRONIC_VOUCHER.getLabel());
+        if (StringUtil.notBlank(param.getReadCardResult())) {
+            MdtrtCertType mdtrtCertType = MdtrtCertType.get(param.getReadCardType());
+            mzptnt.setMdtrtCertType(mdtrtCertType.getLabel());
             mzptnt.setReadCardBizType(ReadCardBizType.REGISTRATION.getCode());
-            mzptnt.setReadCardResult(JSONObject.toJSONString(ecpms));
+            mzptnt.setReadCardResult(param.getReadCardResult());
         }
 
         ResultVo<String> regres = outpatientRegistration(mzptnt);
@@ -580,7 +576,8 @@ public class SiMzFeeService {
         siPatInfo = mzDao.selectSiPatInfoForMz(mzptnt.getPatNo(), mzptnt.getTimes());
         siPatInfo.setFromDirectReg(true);
         SpcChrDiseAcct spcChrDiseAcct = new SpcChrDiseAcct();
-        ResultVo<String> upldMdtrtRes = uploadOutpatientInfo(spcChrDiseAcct, siPatInfo, ecpms.getStaffId());
+        ResultVo<String> upldMdtrtRes = uploadOutpatientInfo(spcChrDiseAcct, siPatInfo, param.getStaffId());
+        log.info("上传就诊信息:{}", upldMdtrtRes);
         if (null == upldMdtrtRes) {
             revokeOutpatientRegistration(mzptnt);
             return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
@@ -592,6 +589,7 @@ public class SiMzFeeService {
 
         // 上传就诊信息成功后生成门诊医保费用
         ResultVo<List<Map<String, Object>>> getMzRcptRes = webHisSrvc.getMzReceipts(webHisUrl, mzptnt);
+        log.info("获取门诊处方:{}", getMzRcptRes);
         if (null == getMzRcptRes) {
             revokeOutpatientRegistration(mzptnt);
             return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
@@ -607,7 +605,8 @@ public class SiMzFeeService {
                 mzReceipts.addAll(entry.getValue());
             }
         }
-        ResultVo<String> insertSiMzFeeRes = webHisSrvc.insertSiMzFees(webHisUrl, mzReceipts);
+        ResultVo<String> insertSiMzFeeRes = webHisSrvc.insertSiMzFeesForThmz(webHisUrl, mzReceipts);
+        log.info("生成医保费用:{}", insertSiMzFeeRes);
         if (null == insertSiMzFeeRes) {
             revokeOutpatientRegistration(mzptnt);
             return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
@@ -618,11 +617,12 @@ public class SiMzFeeService {
         }
 
         // 生成费用成功后上传到医保
-        spcChrDiseAcct.setStaffId(ecpms.getStaffId());
+        spcChrDiseAcct.setStaffId(param.getStaffId());
         spcChrDiseAcct.setPatNo(mzptnt.getPatNo());
         spcChrDiseAcct.setTimes(mzptnt.getTimes());
         spcChrDiseAcct.setFromDirectReg(true);
         ResultVo<SiPatInfo> upldFeeRes = uploadOutpatientFeeDetails(spcChrDiseAcct);
+        log.info("上传医保费用:{}", upldFeeRes);
         if (null == upldFeeRes) {
             revokeOutpatientRegistration(mzptnt);
             return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
@@ -635,15 +635,6 @@ public class SiMzFeeService {
         return outpatientSettlement(mzptnt);
     }
 
-    private InsuInfo getEmployeeInsuInfo(List<InsuInfo> list) {
-        for (InsuInfo info : list) {
-            if (info.getInsutype().equals("310")) {
-                return info;
-            }
-        }
-        return null;
-    }
-
 //    public ResultVo<String> payOnline(EcTokenParams params) {
 //
 //