diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml index c1b7e729e..c553a6032 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml @@ -168,11 +168,12 @@ ON ward.bus_no = SPLIT_PART(bed.bus_no,'.',1) AND ward.form_enum = #{ward} AND ward.delete_flag = '0' - LEFT JOIN adm_encounter_location aelb - ON bed.id = aelb.location_id - AND aelb.delete_flag = '0' - AND aelb.status_enum = #{active} - AND bed.form_enum = #{bed} + LEFT JOIN ( SELECT DISTINCT ON (location_id) location_id, encounter_id + FROM adm_encounter_location + WHERE delete_flag = '0' + AND status_enum = #{active} + ORDER BY location_id, id DESC + ) aelb ON bed.id = aelb.location_id LEFT JOIN adm_encounter ae ON aelb.encounter_id = ae.id AND ae.delete_flag = '0' diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/EncounterLocationServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/EncounterLocationServiceImpl.java index cf8655656..f572dd7f8 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/EncounterLocationServiceImpl.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/EncounterLocationServiceImpl.java @@ -70,6 +70,18 @@ public class EncounterLocationServiceImpl extends ServiceImpl deactivateWrapper = new LambdaUpdateWrapper<>(); + deactivateWrapper.set(EncounterLocation::getStatusEnum, EncounterActivityStatus.COMPLETED.getValue()) + .eq(EncounterLocation::getLocationId, locationId) + .eq(EncounterLocation::getFormEnum, locationForm) + .eq(EncounterLocation::getStatusEnum, EncounterActivityStatus.ACTIVE.getValue()) + .eq(EncounterLocation::getDeleteFlag, DelFlag.NO.getCode()); + baseMapper.update(null, deactivateWrapper); + } + EncounterLocation encounterLocation = new EncounterLocation(); encounterLocation.setEncounterId(encounterId).setStartTime(startTime).setLocationId(locationId) .setFormEnum(locationForm).setStatusEnum(EncounterActivityStatus.ACTIVE.getValue());