eight
2025-03-31 c663b36cebeed7b40498a4e676559b62c0d4bee6
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java
@@ -133,11 +133,16 @@
                continue;
            // 从DB查询预约,是否已经存在
            AppointmentDO appointmentDO = appointmentMapper.getByPatAndCheckTypeAndBookDate(appointmentExtermal.getPatId(), appointmentExtermal.getBookCheckType(), appointmentExtermal.getBookDate());
            AppointmentDO appointmentDO = appointmentMapper.getByEpisodeIdAndApplyNo(appointmentExtermal.getEpisodeId(), appointmentExtermal.getApplyNo());
            if (null == appointmentDO) {
                appointmentMapper.insert(appointmentExtermal);
            } else {
                appointmentExtermal.setId( appointmentDO.getId() ); // 确保 返回值包含 appointment id
                // 处理第一次确认时还没有预约时间,再来确认时已有预约时间的情况
                if (appointmentDO.getBookDate() != appointmentExtermal.getBookDate()) {
                    appointmentMapper.updateById( appointmentExtermal );
                }
            }
        }
@@ -199,10 +204,9 @@
            appointmentDO.setPatWardDesc(appointmentExternal.getPatLocWardDesc());
            appointmentDO.setPatMobile(appointmentExternal.getPhone());
            appointmentDO.setPatBedNo(appointmentExternal.getEnBedno());
            appointmentDO.setBookId(appointmentExternal.getReqIdeApplyno());
            appointmentDO.setBookCheckType(getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode()));
            appointmentDO.setBookTime(DateUtils.ofUTC(appointmentExternal.getReqAuthoredOn()));  // 开单时间
            appointmentDO.setBookSrc( getBookSource(appointmentExternal.getAdmTypeCode()) );
            appointmentDO.setBookSrc( 0 );
            // 光开单的情况,没有预约时间
            if (null != appointmentExternal.getReqExtBooktime() ) {
@@ -245,6 +249,7 @@
        try {
            QueueSaveReqVO queueSaveReqVO = new QueueSaveReqVO();
            queueSaveReqVO.setApplyNo( appointment.getApplyNo() );
            queueSaveReqVO.setEpisodeId( appointment.getEpisodeId() );
            queueSaveReqVO.setAppointId(appointment.getId());
            queueSaveReqVO.setPatId(appointment.getPatId());
@@ -264,19 +269,6 @@
        }
        return newSeqNo;
    }
    private Integer getBookSource(String admTypeCode) {
        if (admTypeCode.equals("AMB"))        // 门诊
            return 1;
        else if (admTypeCode.equals("EMER"))  // 急诊
            return 2;
        else if (admTypeCode.equals("PHY"))  // 体检
            return 3;
        else if (admTypeCode.equals("IMP"))   // 住院
            return 4;
        return 1;
    }
    private Integer getCorrespondingCheckType(String strPlanDefItemcode) {
@@ -338,7 +330,6 @@
        patDetails.setWardDesc( appointment.getPatWardDesc() );
        patDetails.setBedNo( appointment.getPatBedNo() );
        patDetails.setSource( appointment.getPatSrc() );
        patDetails.setApplyNo( appointment.getApplyNo() );
        return patDetails;
    }
}