From a18b993e85e8b266de75c84d62cf83383d8adfee Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 10 四月 2025 15:30:28 +0800
Subject: [PATCH] update
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java | 81 ++++++++++++++++++++++------------------
1 files changed, 45 insertions(+), 36 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 50f0a29..1637b2c 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,13 +3,12 @@
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;
import cn.lihu.jh.module.ecg.dal.dataobject.patient.PatDetails;
import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
-import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper;
+import cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper;
import cn.lihu.jh.module.ecg.dal.mysql.devmanage.DeviceMapper;
import cn.lihu.jh.module.ecg.dal.mysql.jobrecord.JobRecordMapper;
import cn.lihu.jh.module.ecg.dal.mysql.queue.QueueMapper;
@@ -17,21 +16,16 @@
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 lombok.extern.slf4j.Slf4j;
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;
import java.util.List;
-import java.util.Map;
import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO;
@@ -43,7 +37,6 @@
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.*;
@@ -74,6 +67,9 @@
@Resource
QueueMapper queueMapper;
+
+ @Resource
+ CheckTypeMapper checkTypeMapper;
@Override
public CommonResult<Long> registerOperation(DevRentSaveReqVO createReqVO) {
@@ -180,8 +176,8 @@
}
List<Integer> jobTypeList = new ArrayList<Integer>();
- jobTypeList.add( DevRentStateEnum.READY.getState());
- jobTypeList.add( DevRentStateEnum.READY_CANCELLED.getState());
+ jobTypeList.add( DevRentStateEnum.RECEIVED.getState());
+ jobTypeList.add( DevRentStateEnum.RECEIVED_CANCELLED.getState());
JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList);
if (null == jobRecordDO) {
List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState());
@@ -193,7 +189,7 @@
rent_id = devRentDOList.getFirst().getId();
createReqVO.setId( rent_id );
- createReqVO.setState( DevRentStateEnum.READY.getState() );
+ createReqVO.setState( DevRentStateEnum.RECEIVED.getState() );
updateDevRent( createReqVO );
JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
@@ -204,7 +200,7 @@
jobRecordSaveReqVO.setPatId(createReqVO.getPatId());
jobRecordSaveReqVO.setPatName(createReqVO.getPatName());
jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime());
- jobRecordSaveReqVO.setJobType( DevRentStateEnum.READY.getState() );
+ jobRecordSaveReqVO.setJobType( DevRentStateEnum.RECEIVED.getState() );
jobRecordSaveReqVO.setRemark(createReqVO.getRemark());
jobRecordSaveReqVO.setSummary("");
jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() );
@@ -213,12 +209,12 @@
jobRecordMapper.insert(jobRecord);
} else {
// 鎾ら攢 鏀惧純鎿嶄綔
- createReqVO.setState( DevRentStateEnum.READY.getState() );
+ createReqVO.setState( DevRentStateEnum.RECEIVED.getState() );
updateDevRent( createReqVO );
jobRecordDO.setDevId(createReqVO.getDevId());
- jobRecordDO.setJobType( DevRentStateEnum.READY.getState() );
+ jobRecordDO.setJobType( DevRentStateEnum.RECEIVED.getState() );
jobRecordDO.setJobTime(createReqVO.getRentTime());
jobRecordDO.setRemark(createReqVO.getRemark());
jobRecordDO.setUpdater(String.valueOf(userId));
@@ -273,7 +269,7 @@
// 绗竴娆� 瀹夎鎿嶄綔
if (null == jobRecordDO) {
- List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.READY.getState());
+ List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.RECEIVED.getState());
if (devRentDOList.size() == 0)
throw exception(DEV_INSTALL_NOT_RECEIVED);
else if (devRentDOList.size() != 1) {
@@ -484,13 +480,13 @@
DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class);
createReqVO.setDevId(null);
- createReqVO.setState( DevRentStateEnum.READY_CANCELLED.getState());
+ createReqVO.setState( DevRentStateEnum.RECEIVED_CANCELLED.getState());
Long rent_id = createReqVO.getId();
List<Integer> jobTypeList = new ArrayList<Integer>();
- jobTypeList.add( DevRentStateEnum.READY.getState());
- jobTypeList.add( DevRentStateEnum.READY_CANCELLED.getState());
+ jobTypeList.add( DevRentStateEnum.RECEIVED.getState());
+ jobTypeList.add( DevRentStateEnum.RECEIVED_CANCELLED.getState());
JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList);
if (null == jobRecordDO) {
List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState());
@@ -499,7 +495,7 @@
rent_id = devRentDOList.getFirst().getId();
createReqVO.setId( rent_id );
- createReqVO.setState( DevRentStateEnum.READY_CANCELLED.getState() );
+ createReqVO.setState( DevRentStateEnum.RECEIVED_CANCELLED.getState() );
updateDevRent( createReqVO );
JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
@@ -509,7 +505,7 @@
jobRecordSaveReqVO.setDocName(userNickname);
jobRecordSaveReqVO.setPatId(createReqVO.getPatId());
jobRecordSaveReqVO.setPatName(createReqVO.getPatName());
- jobRecordSaveReqVO.setJobType( DevRentStateEnum.READY_CANCELLED.getState() );
+ jobRecordSaveReqVO.setJobType( DevRentStateEnum.RECEIVED_CANCELLED.getState() );
jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime());
jobRecordSaveReqVO.setRemark(createReqVO.getRemark());
jobRecordSaveReqVO.setSummary("");
@@ -521,7 +517,7 @@
updateDevRent( createReqVO );
jobRecordDO.setDevId(null);
- jobRecordDO.setJobType(DevRentStateEnum.READY_CANCELLED.getState());
+ jobRecordDO.setJobType(DevRentStateEnum.RECEIVED_CANCELLED.getState());
jobRecordDO.setJobTime(createReqVO.getRentTime());
jobRecordDO.setRemark(createReqVO.getRemark());
jobRecordDO.setUpdater(String.valueOf(userId));
@@ -554,7 +550,7 @@
jobTypeList.add( DevRentStateEnum.INSTALL_CANCELLED.getState());
JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList);
if (null == jobRecordDO) {
- List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.READY.getState());
+ List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.RECEIVED.getState());
if (devRentDOList.size() != 1)
throw exception(DEV_INSTALL_EXIST);
@@ -692,10 +688,10 @@
}
@Override
- public DevRentDO getInstalledOrCancelledRent(DevRentSearchReqVO searchReqVO) {
+ public DevRentDO getExistingRent(DevRentSearchReqVO searchReqVO) {
List<Integer> stateList = new ArrayList<>();
stateList.add( DevRentStateEnum.INSTALLED.getState() );
- stateList.add( DevRentStateEnum.INSTALL_CANCELLED.getState());
+ stateList.add( DevRentStateEnum.RECEIVED.getState());
searchReqVO.setStateList( stateList );
return devRentMapper.getRentByState(searchReqVO);
}
@@ -711,8 +707,8 @@
@Override
public DevRentDO getReadyOrCancelledRent(DevRentSearchReqVO searchReqVO) {
List<Integer> stateList = new ArrayList<>();
- stateList.add( DevRentStateEnum.READY.getState() );
- stateList.add( DevRentStateEnum.READY_CANCELLED.getState());
+ stateList.add( DevRentStateEnum.RECEIVED.getState() );
+ stateList.add( DevRentStateEnum.RECEIVED_CANCELLED.getState());
searchReqVO.setStateList( stateList );
return devRentMapper.getRentByState(searchReqVO);
}
@@ -726,11 +722,18 @@
}
// 纭垂澶勭悊
+ // 杩斿洖鍊�: 0 鎴愬姛 1 澶辫触 2 涓嶇敤纭垂
@Override
public Integer feeConfirm(Long rentId, String hisId, String userNickname, Boolean isFeeConfirmOrCancel) {
DevRentDO devRentDO = devRentMapper.selectById(rentId);
- PatDetails patDetails = devRentDO.getPatDetails();
+ // 鏌ヨ妫�鏌ョ被鍨嬶紝纭畾鏄惁闇�瑕佺‘璐�
+ CheckTypeDO checkTypeDO = checkTypeMapper.getCheckTypeByValue(devRentDO.getCheckType());
+ if (0 == checkTypeDO.getExpenseRecognition()) {
+ return 2;
+ }
+
+ PatDetails patDetails = devRentDO.getPatDetails();
HisFeeConfirmReqBody hisFeeConfirmReqBody = new HisFeeConfirmReqBody();
MsgHeader msgHeader = new MsgHeader();
msgHeader.setMsgType("ODS_2212");
@@ -748,7 +751,7 @@
item.setExeDateTime( getCurTimeString() ); //
ExmRequest exmRequest = new ExmRequest();
exmRequest.setAuthorOrganization("47162057-2");
- exmRequest.setRequestId( patDetails.getApplyNo() ); //
+ exmRequest.setRequestId( devRentDO.getApplyNo() ); //
exmRequest.setPatientType( getPatientType(patDetails.getSource()) ); //
exmRequest.setItem(item);
hisFeeConfirmReqBody.setExmRequest(exmRequest);
@@ -758,7 +761,7 @@
if (0 == returnValue) {
devRentMapper.setPaid(rentId, isFeeConfirmOrCancel ? 1 : 0);
}
- return returnValue; // 0 鎴愬姛 1 澶辫触
+ return returnValue; // 0 鎴愬姛 1 澶辫触 2 涓嶇敤纭垂
}
// 鏍囪 璁惧宸茶棰嗗彇
@@ -827,7 +830,7 @@
private void procAffinityWhenRoutineFinish(String patId, Integer[] affinityCheckTypes) {
// 濡傛灉瀛樺湪 [浜插拰-鎺掗槦] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [灏辫瘖涓璢
List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
- patId, affinityCheckTypes, QueueStatusEnum.AFFINITY_WAITING.getStatus());
+ patId, affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus());
if (!affinityAffinityWaitingItems.isEmpty()) {
QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0);
tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus());
@@ -835,20 +838,25 @@
}
}
+ /**
+ * 棰嗙敤瀹屾垚锛屼富鍔ㄥ姹備緷闄�
+ */
private void procAffinityWhenReadyFinish(/*IN,OUT*/QueueDO bedOnStageQueueItem, Integer[] affinityCheckTypes) {
- // 濡傛灉瀛樺湪 [瀹夎涓璢 浜插拰椤癸紝鍒欒窡闅忓叾涓竴涓翰鍜岄」
- List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
- bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.INSTALLING.getStatus());
+ // 濡傛灉瀛樺湪 [瀹夎涓璢 [瀹夎杩囧彿] [瀹夎鍙洖] 鑳借渚濋檮鐨勬鏌ラ」锛屽垯渚濋檮鍒板叾涓竴涓鏌ラ」
+ List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatusList(
+ bedOnStageQueueItem.getPatId(), affinityCheckTypes,
+ List.of(QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.PASSED_INSTALL.getStatus(),
+ QueueStatusEnum.RECALLED_INSTALL.getStatus()));
if (!affinityInstallingItems.isEmpty()) {
QueueDO affinityInstallingItem = affinityInstallingItems.get(0);
- bedOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); // 浜插拰-棰嗙敤
+ bedOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_INSTALL.getStatus()); // 浜插拰-棰嗙敤
bedOnStageQueueItem.setRoomId( affinityInstallingItem.getRoomId() );
bedOnStageQueueItem.setBedNo( affinityInstallingItem.getBedNo() ); // 棰嗙敤 鍒� 瀹夎 鍙兘浼氬湪涓嶅悓宸ヤ綅
}
// 濡傛灉瀛樺湪 [浜插拰-鎺掗槦] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [灏辫瘖涓璢
List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
- bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_WAITING.getStatus());
+ bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus());
if (!affinityAffinityWaitingItems.isEmpty()) {
QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0);
tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus());
@@ -856,9 +864,10 @@
}
}
+ // 濡傛灉瀛樺湪 [浜插拰-棰嗙敤] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [瀹夎涓璢
private void procAffinityWhenInstallFinish(QueueDO bedInstallingQueueItem, Integer[] affinityCheckTypes) {
List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
- bedInstallingQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_RECEIVED.getStatus());
+ bedInstallingQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_INSTALL.getStatus());
if (!affinityAffinityReceivedItems.isEmpty()) {
QueueDO tmpQueueDO = affinityAffinityReceivedItems.get(0);
tmpQueueDO.setStatus(QueueStatusEnum.INSTALLING.getStatus());
--
Gitblit v1.9.3