فهرست منبع

为门诊结算添加手动进行超时结算的功能。

lighter 7 ماه پیش
والد
کامیت
4fc7fa661f

+ 5 - 0
src/main/java/thyyxxk/webserver/controller/medicalinsurance/SiMzController.java

@@ -125,6 +125,11 @@ public class SiMzController {
         return service.outpatientSettlement(p);
     }
 
+    @PostMapping("/timeoutSetl")
+    public ResultVo<FundDetail> timeoutSetl(@RequestBody MzPatientInfo p) {
+        return service.timeoutSetl(p);
+    }
+
     @PostMapping("/revokeOutpatientSettlement")
     public ResultVo<FundDetail> revokeOutpatientSettlement(@RequestBody MzPatientInfo p) {
         if (service.receiptAlreadyPrinted(p)) {

+ 2 - 2
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/SiMzDao.java

@@ -181,8 +181,8 @@ public interface SiMzDao {
             "where patient_id=#{patNo} and times=#{times}")
     String selectReceiptBill(String patNo, int times);
 
-    @Select("select rtrim(social_no) from mz_patient_mi where patient_id=#{patNo}")
-    String selectPatientIdCardNo(String patNo);
+    @Select("select result from t_si_log where msgid=#{msgid}")
+    String getLogContent(String msgid);
 
     @Select("select b.psn_no,b.insutype,b.psn_name,a.visit_date as begntime, " +
             "mdtrtCertType='02',b.certno as mdtrtCertNo,certType='1',b.certno,b.med_type, " +

+ 1 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/outpatient/MzPatientInfo.java

@@ -42,4 +42,5 @@ public class MzPatientInfo {
     private String readCardResult;
     private String readCardBizType;
     private String expContent;
+    private String msgid;
 }

+ 3 - 0
src/main/java/thyyxxk/webserver/service/externalhttp/SiMzSrvc.java

@@ -38,6 +38,9 @@ public interface SiMzSrvc {
     @Post("{url}/outpatientSettlement")
     ResultVo<FundDetail> outpatientSettlement(@Var("url") String url, @JSONBody MzPatientInfo p);
 
+    @Post("{url}/timeoutSetl")
+    ResultVo<FundDetail> timeoutSetl(@Var("url") String url, @JSONBody MzPatientInfo p);
+
     @Post("{url}/revokeOutpatientSettlement")
     ResultVo<FundDetail> revokeOutpatientSettlement(@Var("url") String url, @JSONBody MzPatientInfo p);
 

+ 12 - 0
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiMzService.java

@@ -407,6 +407,18 @@ public class SiMzService {
         return mzSrvc.outpatientSettlement(siMzFeeUrl, p);
     }
 
+    public ResultVo<FundDetail> timeoutSetl(MzPatientInfo p) {
+        if (null == p.getStaffId()) {
+            p.setStaffId(TokenUtil.getInstance().getTokenUserId());
+        }
+        String logContent = dao.getLogContent(p.getMsgid());
+        if (!logContent.contains("服务提供者后端服务响应超时")) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR,
+                    "该笔交易不符合超时结算条件,无法进行超时结算(结算失败的原因为“服务提供者后端服务响应超时”时,方可进行超时结算)。");
+        }
+        return mzSrvc.timeoutSetl(siMzFeeUrl, p);
+    }
+
     public boolean receiptAlreadyPrinted(MzPatientInfo p) {
         String receiptBill = dao.selectReceiptBill(p.getPatNo(), p.getTimes());
         return StringUtil.notBlank(receiptBill);