From 74868ba9e0775ccc21d02ef9e0f805bd1e6ae0aa Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 21 十一月 2024 18:15:33 +0800
Subject: [PATCH] 确费逻辑

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java |   90 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 1 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
index 5607b22..45ce17b 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.lihu.jh.framework.common.pojo.CommonResult;
 import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils;
 import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordSaveReqVO;
+import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO;
 import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
 import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO;
 import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO;
@@ -14,11 +15,16 @@
 import cn.lihu.jh.module.ecg.enums.DevRentStateEnum;
 import cn.lihu.jh.module.ecg.enums.DevStateEnum;
 import cn.lihu.jh.module.ecg.enums.QueueStatusEnum;
+import cn.lihu.jh.module.ecg.feign.*;
+import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal;
 import cn.lihu.jh.module.ecg.service.queue.QueueServiceTxFunctions;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.Console;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
@@ -35,6 +41,8 @@
 import javax.annotation.Resource;
 
 import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.lihu.jh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static cn.lihu.jh.framework.common.util.date.DateUtils.getCurTimeString;
 import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*;
 
 /**
@@ -48,6 +56,9 @@
 
     @Resource
     QueueServiceTxFunctions queueServiceTxFunctions;
+
+    @Resource
+    private RemoteDataService remoteDataService;
 
     @Resource
     private DevRentMapper devRentMapper;
@@ -74,8 +85,9 @@
 
         Long userId = SecurityFrameworkUtils.getLoginUserId();
         String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
+        String userHisId = SecurityFrameworkUtils.getLoginUserHisId();
 
-        // 鍚屾牱 鍦ㄩ绾︾‘瀹炴椂 灏辫繘鍏� [dev_rent] 琛ㄤ簡
+        // 鍚屾牱 鍦ㄩ绾︾‘璁ゆ椂 灏辫繘鍏� [dev_rent] 琛ㄤ簡
         Long rent_id = createReqVO.getId();
 
         List<Integer> jobTypeList = new ArrayList<Integer>();
@@ -141,6 +153,8 @@
             procAffinityWhenRoutineFinish( firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes() );
         }
 
+        // 纭垂澶勭悊
+        feeConfirm(firstOnStageQueueItem, userHisId, userNickname);
         return CommonResult.success(rent_id);
     }
 
@@ -814,5 +828,79 @@
         }
     }
 
+    private void feeConfirm(QueueDO queueItem, String hisId, String userNickname, Boolean isFeeConfirmCancel) throws JsonProcessingException {
+        PatDetails patDetails = queueItem.getPatDetails();
+
+        HisFeeConfirmReqBody hisFeeConfirmReqBody = new HisFeeConfirmReqBody();
+        MsgHeader msgHeader = new MsgHeader();
+        msgHeader.setMsgType("ODS_2212");
+        msgHeader.setMsgVersion("3.0");
+        msgHeader.setSender("ECG");
+        hisFeeConfirmReqBody.setMsgHeader(msgHeader);
+        Item item = new Item();
+        item.setItemCode( getHisCheckCode(queueItem.getBookCheckType()) ); //
+        item.setItemStatus( isFeeConfirmCancel? "6" : "5" ); //
+        item.setExeOrganization("47162057-2");
+        item.setExeDeptName("蹇冪數绉�");
+        item.setExeDept("蹇冪數绉�");
+        item.setExeDoctor( hisId ); //
+        item.setExeDoctorName( userNickname ); //
+        item.setExeDateTime( getCurTimeString() ); //
+        ExmRequest exmRequest = new ExmRequest();
+        exmRequest.setAuthorOrganization("47162057-2");
+        exmRequest.setRequestId( patDetails.getApplyNo() );  //
+        exmRequest.setPatientType( getPatientType(patDetails.getSource()) ); //
+        exmRequest.setItem(item);
+        hisFeeConfirmReqBody.setExmRequest(exmRequest);
+        HisFeeConfirmRespResult result = remoteDataService.httpFeeApi("UpdateExmRequestStatus", "ECG", "ECG", hisFeeConfirmReqBody);
+        result.getMsgHeader().getStatus();
+    }
+
+    private String getHisCheckCode(Integer checkType) {
+        if (100 == checkType)
+            return "691133607";
+        else if (200 == checkType)
+            return "201605";
+        else if (300 == checkType)
+            return "200327";
+        else if (400 == checkType)
+            return "201652";
+        else if (500 == checkType)
+            return "502490914";
+        else if (600 == checkType)
+            return "419562119";
+        else if (700 == checkType)
+            return "201604";
+        else if (800 == checkType)
+            return "1202042";
+        else if (900 == checkType)
+            return "1202058";
+        else if (1000 == checkType)
+            return "1202065";
+        else if (1100 == checkType)
+            return "559542128";
+        else if (1200 == checkType)
+            return "590244511";
+        else if (1300 == checkType)
+            return "666454217";
+        else if (1400 == checkType)
+            return "720791490";
+        else if (1500 == checkType)
+            return "720792077";
+
+        return "691133607";
+    }
+
+    String getPatientType( Integer patientSource ) {
+        if (1 == patientSource || 2 == patientSource)
+            return "01";
+        else if (3 == patientSource)
+            return "03";
+        else if (4 == patientSource)
+            return "04";
+
+        return "01";
+    }
+
 }
 

--
Gitblit v1.9.3