From 4b278300e8b3b1faabd5d080990cd3124f68612c Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 26 十一月 2024 13:09:28 +0800 Subject: [PATCH] 会取下一个时段的序号 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 109 insertions(+), 5 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 f1ddcc6..c74c791 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,25 +3,35 @@ 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.devmanage.DeviceMapper; import cn.lihu.jh.module.ecg.dal.mysql.jobrecord.JobRecordMapper; import cn.lihu.jh.module.ecg.dal.mysql.queue.QueueMapper; 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 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; @@ -33,6 +43,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.*; /** @@ -42,10 +54,14 @@ */ @Service @Validated +@Slf4j public class DevRentServiceImpl implements DevRentService { @Resource QueueServiceTxFunctions queueServiceTxFunctions; + + @Resource + private FeeConfirmFeignService feeConfirmFeignService; @Resource private DevRentMapper devRentMapper; @@ -72,8 +88,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>(); @@ -152,10 +169,12 @@ public CommonResult<Long> readyOperation(DevRentSaveReqVO createReqVO) { Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); + + // 鍦ㄩ绾︾‘璁ゆ椂 灏辫繘鍏� [dev_rent] 琛ㄤ簡 Long rent_id = createReqVO.getId(); // dev_rent 琛ㄧ殑ID // 鏍囨敞璁惧 宸查鍙� - Integer ret = markDevRecieved(createReqVO.getDevId(), rent_id); + Integer ret = markDevRecieved(createReqVO.getDevId(), rent_id, createReqVO.getPatDetails()); if (null == ret || 0 == ret) { throw exception(DEVICE_NOT_FREE); } @@ -233,10 +252,11 @@ String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); Long rent_id = createReqVO.getId(); - // 瀵逛簬宸叉湁棰嗙敤锛屼絾鏄鏈烘椂浣跨敤鐨勪笉鏄凡棰嗙敤璁惧锛岄渶閲婃斁 婧愰鐢� 璁惧 DevRentDO devRentDO = getDevRent(rent_id); + + // 瀵逛簬宸叉湁棰嗙敤锛屼絾鏄鏈烘椂浣跨敤鐨勪笉鏄凡棰嗙敤璁惧锛屾姤閿� if ( null != devRentDO.getDevId() && !createReqVO.getDevId().equals(devRentDO.getDevId()) ) { - markDevFree( devRentDO.getDevId(), rent_id); + throw exception(DEVICE_NOT_PAT_RECEIVED); } // 璁剧疆璁惧 浣跨敤涓� @@ -705,14 +725,51 @@ return devRentMapper.getRentByState(searchReqVO); } + // 纭垂澶勭悊 + @Override + public Integer feeConfirm(Long rentId, String hisId, String userNickname, Boolean isFeeConfirmOrCancel) { + DevRentDO devRentDO = devRentMapper.selectById(rentId); + PatDetails patDetails = devRentDO.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(devRentDO.getCheckType()) ); // + item.setItemStatus( isFeeConfirmOrCancel? "5" : "6" ); // 5 纭垂 6 鍙栨秷纭垂 + 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 = feeConfirmFeignService.httpFeeApi("UpdateExmRequestStatus", "ECG", "ECG", hisFeeConfirmReqBody); + log.info( result.getMsgHeader().getStatus() ); + Integer returnValue = result.getMsgHeader().getStatus().equals("true") ? 0 : 1; + if (0 == returnValue) { + devRentMapper.setPaid(rentId, isFeeConfirmOrCancel ? 1 : 0); + } + return returnValue; + } + // 鏍囪 璁惧宸茶棰嗗彇 - private Integer markDevRecieved(String devId, Long rentId) { + private Integer markDevRecieved(String devId, Long rentId, PatDetails patDetails) { // 璁惧鏍囨敞 宸查鍙� DeviceDO deviceDO = deviceMapper.getDeviceByDevId(devId); if (null != deviceDO && DevStateEnum.FREE.isEqual(deviceDO.getState())) { deviceDO.setState( DevStateEnum.RECEIVED.getState() ); deviceDO.setRentId( rentId ); deviceDO.setStateDate( LocalDate.now() ); + deviceDO.setPatDetails( patDetails ); return deviceMapper.updateById(deviceDO); } @@ -760,6 +817,7 @@ deviceDO.setState( DevStateEnum.FREE.getState() ); deviceDO.setStateDate( LocalDate.now() ); deviceDO.setRentId(null); + deviceDO.setPatDetails(null); return deviceMapper.updateById(deviceDO); } @@ -810,5 +868,51 @@ } } + 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