From dc90adfdd8b5efe8368d831e8fd5c89002c92b68 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 29 十月 2024 16:03:12 +0800 Subject: [PATCH] update --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 135 insertions(+), 3 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 a29b562..9a53eaf 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,12 +1,20 @@ 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.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.*; import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import cn.lihu.jh.framework.common.pojo.PageResult; -import cn.lihu.jh.framework.common.pojo.PageParam; import cn.lihu.jh.framework.common.util.object.BeanUtils; import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; @@ -14,9 +22,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; -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.module.ecg.enums.ErrorCodeConstants.*; /** @@ -29,6 +37,12 @@ public class AppointmentServiceImpl implements AppointmentService { @Resource + private RemoteDataService remoteDataService; + + @Resource + private QueueService queueService; + + @Resource private AppointmentMapper appointmentMapper; @Override @@ -37,7 +51,7 @@ AppointmentDO appointment = BeanUtils.toBean(createReqVO, AppointmentDO.class); appointment.setBookTime( LocalDateTime.now() ); - appointment.setBookSrc( 0 ); + appointment.setBookSrc( 1 ); appointmentMapper.insert(appointment); // 杩斿洖 @@ -73,8 +87,126 @@ } @Override + public AppointmentDO getAppointmentByPatId(String patId) { + // 鍏堜粠鍖婚櫌骞冲彴鏌ヨ + AppointmentDO appointmentExtermal = getAppointmentExtermal( patId ); + if (null != appointmentExtermal && null != appointmentExtermal.getBookDate()) { + // 鏌ヨDB涓� 鏄惁宸茬粡瀛樺湪 + AppointmentDO appointmentDO = appointmentMapper.getCurrentPatId( patId ); + if (null == appointmentDO ) { + appointmentMapper.insert( appointmentExtermal ); + return appointmentExtermal; + } + return appointmentDO; + } + + return appointmentMapper.getCurrentPatId( patId ); + } + + @Override public PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO) { 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 = getAppointment(confirmReqVO.getId()); + if (null == appointment) + throw exception(PATIENT_NOT_EXISTS); + + if ( !DateUtils.isToday(appointment.getBookDate()) ) + throw exception( APPOINTMENT_NOT_TODAY); + + 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