eight
2024-11-11 adb4da3c83649d550b8674feb1eb0926fbace30e
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java
@@ -3,12 +3,14 @@
import cn.lihu.jh.framework.common.util.date.DateUtils;
import cn.lihu.jh.framework.common.util.date.LocalDateTimeUtils;
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO;
import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
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.config.EcgConfigService;
import cn.lihu.jh.module.ecg.service.queue.QueueService;
import cn.lihu.jh.module.ecg.service.queue.QueueServiceTxFunctions;
import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DuplicateKeyException;
@@ -121,25 +123,26 @@
    public List<AppointmentDO> queryAndCreateAppointmentByPatId(String patCode) {
        // 先从医院平台查询
        List<AppointmentDO> appointmentExtermalList = getAppointmentExtermal( patCode );
        return appointmentExtermalList;
/* 先保留
        for ( int appointmentIndex = 0; appointmentIndex < appointmentExtermalList.size(); appointmentIndex++ ) {
            AppointmentDO appointmentExtermal = appointmentExtermalList.get(appointmentIndex);
            if (null != appointmentExtermal && null != appointmentExtermal.getBookDate() && appointmentExtermal.getBookDate().isEqual(LocalDate.now())) {
                // 查到当天的预约后,查询DB中 是否已经存在
                AppointmentDO appointmentDO = appointmentMapper.getCurrentByPatAndCheckType(appointmentExtermal.getPatId(), appointmentExtermal.getBookCheckType());
                if (null == appointmentDO) {
                    appointmentMapper.insert(appointmentExtermal);
                    return appointmentExtermal;
                }
                return appointmentDO;
            if (null == appointmentExtermal )
                continue;
            // 从DB查到预约,是否已经存在
            AppointmentDO appointmentDO = appointmentMapper.getByPatAndCheckTypeAndBookDate(appointmentExtermal.getPatId(), appointmentExtermal.getBookCheckType(), appointmentExtermal.getBookDate());
            if (null == appointmentDO) {
                appointmentMapper.insert(appointmentExtermal);
            } else {
                appointmentExtermal.setId( appointmentDO.getId() ); // 确保 返回值保护 appointment id
            }
        }
        List<AppointmentDO> appointmentDOList = appointmentMapper.getCurrentPatId( patCode );
        return 0 == appointmentDOList.size() ? null : appointmentDOList.get(0);
 */
        // 不从DB查询
        //List<AppointmentDO> appointmentDOList = appointmentMapper.getCurrentPatId( patCode );
        //return 0 == appointmentDOList.size() ? null : appointmentDOList.get(0);
        return appointmentExtermalList;
    }
    @Override
@@ -210,6 +213,11 @@
        if (null == appointment)
            throw exception(PATIENT_NOT_EXISTS);
        // 手动预约,直接设置预约日期为当天
        if (confirmReqVO.getIsVip() == 1) {
            appointment.setBookDate( LocalDate.now() );
        }
        if ( !DateUtils.isToday(appointment.getBookDate()) )
            throw exception( APPOINTMENT_NOT_TODAY);