| | |
| | | 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.config.EcgConfigService; |
| | | import cn.lihu.jh.module.ecg.service.queue.QueueService; |
| | | import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; |
| | | import org.springframework.dao.DuplicateKeyException; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | public class AppointmentServiceImpl implements AppointmentService { |
| | | |
| | | @Resource |
| | | private EcgConfigService ecgConfigService; |
| | | |
| | | @Resource |
| | | private RemoteDataService remoteDataService; |
| | | |
| | | @Resource |
| | | private QueueSequenceService queueSequenceService; |
| | | |
| | | @Resource |
| | | private QueueService queueService; |
| | |
| | | if (null != appointmentExternal.getReqExtBooktime() ) { |
| | | appointmentDO.setBookDate(DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()).toLocalDate()); |
| | | LocalDateTime bookStartTime = DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()); |
| | | LocalDateTime bookEndTime = bookStartTime.plusMinutes(30); |
| | | LocalDateTime bookEndTime = bookStartTime.plusMinutes( ecgConfigService.getTimeslotLength()); |
| | | appointmentDO.setBookTimeslot((bookStartTime.getHour() * 100 + bookStartTime.getMinute()) * 10000 + bookEndTime.getHour() * 100 + bookEndTime.getMinute()); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public String appoitmentConfirm(AppointmentConfirmReqVO confirmReqVO) { |
| | | public Integer 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); |
| | | |
| | | |
| | | Integer newSeqNo = null; |
| | | if (confirmReqVO.getIsVip() == 0) { |
| | | newSeqNo = queueSequenceService.distributeSeqNo(confirmReqVO.getBookCheckType(), confirmReqVO.getBookTimeslot()); |
| | | } else { |
| | | newSeqNo = queueSequenceService.distributeVipSeqNo(confirmReqVO.getBookCheckType(), confirmReqVO.getBookTimeslot()); |
| | | } |
| | | |
| | | try { |
| | | QueueSaveReqVO queueSaveReqVO = new QueueSaveReqVO(); |
| | |
| | | queueSaveReqVO.setBookDate(appointment.getBookDate()); |
| | | queueSaveReqVO.setBookTimeslot(appointment.getBookTimeslot()); |
| | | queueSaveReqVO.setBookCheckType(appointment.getBookCheckType()); |
| | | queueSaveReqVO.setBookSeqNum( newSeqNo ); |
| | | queueSaveReqVO.setIsVip( confirmReqVO.getIsVip() ); |
| | | queueSaveReqVO.setPassed((byte) 0); |
| | | queueSaveReqVO.setExpired((byte) 0); |
| | | queueSaveReqVO.setPatDetails( appointment.getPatDeptDesc() + "-" + appointment.getPatWardDesc() + "-" + appointment.getPatBedNo()); |
| | |
| | | throw exception(APPOINTMENT_HAVE_QUEUED); |
| | | } |
| | | |
| | | return "确认成功"; |
| | | return newSeqNo; |
| | | } |
| | | |
| | | private Integer getCorrespondingCheckType(String strPlanDefItemcode) { |