From 6a07378488a9dd1515a6a0fdb4c1833638e6592b Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 29 十月 2024 14:44:57 +0800 Subject: [PATCH] 接口对接 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 128 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 127 insertions(+), 1 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java index c165a8a..3f0de3d 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java @@ -1,6 +1,16 @@ package cn.lihu.jh.module.ecg.service.appointment; +import cn.lihu.jh.framework.common.util.date.DateUtils; +import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO; +import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; +import cn.lihu.jh.module.ecg.feign.RemoteDataService; +import cn.lihu.jh.module.ecg.feign.RestApiReqBodyVo; +import cn.lihu.jh.module.ecg.feign.RestApiResult; +import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal; +import cn.lihu.jh.module.ecg.service.queue.QueueService; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; @@ -17,6 +27,8 @@ import java.util.Date; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.lihu.jh.framework.common.pojo.CommonResult.error; +import static cn.lihu.jh.framework.common.pojo.CommonResult.success; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** @@ -29,6 +41,12 @@ public class AppointmentServiceImpl implements AppointmentService { @Resource + private RemoteDataService remoteDataService; + + @Resource + private QueueService queueService; + + @Resource private AppointmentMapper appointmentMapper; @Override @@ -37,7 +55,7 @@ AppointmentDO appointment = BeanUtils.toBean(createReqVO, AppointmentDO.class); appointment.setBookTime( LocalDateTime.now() ); - appointment.setBookSrc( 0 ); + appointment.setBookSrc( 1 ); appointmentMapper.insert(appointment); // 杩斿洖 @@ -82,4 +100,112 @@ return appointmentMapper.selectPage(pageReqVO); } + @Override + public AppointmentDO getAppointmentExtermal(String mzzyh) { + RestApiReqBodyVo reqBodyVo = new RestApiReqBodyVo(); + //reqBodyVo.setSfzh(confirmReqVO.getPatId()); + reqBodyVo.setMzzyh( mzzyh ); + + // QueryRisReportList queryEcgRequest + RestApiResult<AppointmentExternal> result = remoteDataService.httpApi("queryEcgRequest", "ECG", "ECG", reqBodyVo); + result.getCode(); + + AppointmentExternal appointmentExternal = result.getRow().get(0); + + AppointmentDO appointmentDO = BeanUtils.toBean( appointmentExternal, AppointmentDO.class ); + + appointmentDO.setPatId( appointmentExternal.getPatientID() ); // 鍐呭涓� 韬唤璇佸彿 鎴� 闂ㄨ瘖浣忛櫌鍙� + appointmentDO.setPatName( appointmentExternal.getPatName() ); + appointmentDO.setPatGender( Byte.valueOf(appointmentExternal.getPatgender()) ); + appointmentDO.setPatBirthday( appointmentExternal.getEncPatBirthDate() ); + appointmentDO.setPatIdentityId( appointmentExternal.getIdentityID() ); + appointmentDO.setPatAddr( appointmentExternal.getAddress() ); + appointmentDO.setPatDeptCode( appointmentExternal.getPatLocDeptCode() ); + appointmentDO.setPatDeptDesc( appointmentExternal.getPatLocDeptDesc() ); + appointmentDO.setPatWardCode( appointmentExternal.getPatLocWardCode() ); + appointmentDO.setPatWardDesc( appointmentExternal.getPatLocWardDesc() ); + appointmentDO.setPatMobile( appointmentExternal.getPhone() ); + appointmentDO.setPatBedNo( appointmentExternal.getEnBedno() ); + appointmentDO.setBookId( appointmentExternal.getReqIdeApplyno() ); + appointmentDO.setBookDate( appointmentExternal.getReqExtBooktime().toLocalDate() ); + appointmentDO.setBookCheckType( getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode()) ); + appointmentDO.setBookTime( appointmentExternal.getReqAuthoredOn() ); + LocalDateTime bookStartTime = appointmentExternal.getReqExtBooktime(); + LocalDateTime bookEndTime = bookStartTime.plusMinutes(30); + appointmentDO.setBookTimeslot( (bookStartTime.getHour()*100 + bookStartTime.getMinute())*10000 + bookEndTime.getHour()*100 + bookEndTime.getMinute() ); + appointmentDO.setBookSrc( 0 ); + appointmentDO.setPaid( 1 ); + return appointmentDO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String appoitmentConfirm(AppointmentConfirmReqVO confirmReqVO) { + AppointmentDO appointment = getAppointmentExtermal(confirmReqVO.getMzzyh()); + if (null == appointment ) { + //浠庨绾﹁〃鍙栨暟鎹紝鍚庣画瀵规帴鏁版嵁骞冲彴鏌ラ绾︽暟鎹� + appointment = getAppointment(confirmReqVO.getId()); + } + + if (null == appointment) + throw exception(PATIENT_NOT_EXISTS); + + if ( !DateUtils.isToday(appointment.getBookDate()) ) + throw exception( APPOINTMENT_NOT_TODAY); + + appointmentMapper.insert(appointment); + + try { + QueueSaveReqVO queueSaveReqVO = new QueueSaveReqVO(); + queueSaveReqVO.setPatId(appointment.getPatId()); + queueSaveReqVO.setPatName(appointment.getPatName()); + queueSaveReqVO.setPatGender(appointment.getPatGender()); + queueSaveReqVO.setBookDate(appointment.getBookDate()); + queueSaveReqVO.setBookTimeslot(appointment.getBookTimeslot()); + queueSaveReqVO.setBookCheckType(appointment.getBookCheckType()); + queueSaveReqVO.setPassed((byte) 0); + queueSaveReqVO.setExpired((byte) 0); + queueSaveReqVO.setPatDetails( appointment.getPatDeptDesc() + "-" + appointment.getPatWardDesc() + "-" + appointment.getPatBedNo()); + queueService.queue(queueSaveReqVO); + } catch (DuplicateKeyException duplicateKeyException) { + throw exception(APPOINTMENT_HAVE_QUEUED); + } + + return "纭鎴愬姛"; + } + + private Integer getCorrespondingCheckType(String strPlanDefItemcode) { + if (strPlanDefItemcode.equals("691133607")) + return 100; + else if (strPlanDefItemcode.equals("201605")) + return 200; + else if (strPlanDefItemcode.equals("200327")) + return 300; + else if (strPlanDefItemcode.equals("201652")) + return 400; + else if (strPlanDefItemcode.equals("502490914")) + return 500; + else if (strPlanDefItemcode.equals("419562119")) + return 600; + else if (strPlanDefItemcode.equals("201604")) + return 700; + else if (strPlanDefItemcode.equals("1202042")) + return 800; + else if (strPlanDefItemcode.equals("1202058")) + return 900; + else if (strPlanDefItemcode.equals("1202065")) + return 1000; + else if (strPlanDefItemcode.equals("559542128")) + return 1100; + else if (strPlanDefItemcode.equals("590244511")) + return 1200; + else if (strPlanDefItemcode.equals("666454217")) + return 1300; + else if (strPlanDefItemcode.equals("720791490")) + return 1400; + else if (strPlanDefItemcode.equals("720792077")) + return 1500; + + return 100; + } } \ No newline at end of file -- Gitblit v1.9.3