package com.coffee.bus.service; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.coffee.bus.entity.BusClinicEntity; import com.coffee.bus.mapper.BusClinicMapper; import com.coffee.bus.registry.patient.PatientOperator; import com.coffee.bus.registry.patient.PatientRegistry; import com.coffee.bus.registry.patient.bean.PatientCacheInfo; import com.coffee.common.crud.BaseService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; /** * @author lifang * @version 1.0.0 * @ClassName LocalBusHospitalService.java * @Description TODO * @createTime 2022年03月19日 09:27:00 */ @Service @Slf4j public class LocalBusClinicService extends BaseService { @Autowired @Lazy private PatientRegistry patientRegistry; @Override public void validateBeforeSave(BusClinicEntity entity) { } @Override public void validateBeforeUpdate(BusClinicEntity entity) { } @Override public void validateBeforeDelete(String id) { } @Override public boolean save(BusClinicEntity entity) { return super.save(entity); } /** * 结束当前医院病号的临床数据 * @param patientCodes 病号 */ @Transactional(rollbackFor = Exception.class) public void finish(List patientCodes, String tenantId) { this.update(new UpdateWrapper().lambda() .in(BusClinicEntity::getPatientCode,patientCodes) .eq(BusClinicEntity::getFinished,false) .set(BusClinicEntity::getFinished,true) .set(BusClinicEntity::getEndTime,new Date())); //更新病人缓存 patientCodes.stream().map(code->patientRegistry.getOperator(tenantId,code)).forEach(operator->operator.setFinished(true)); } /** * 找到该病号最近的一场手术 * @param hospitalId * @param patientCode */ public BusClinicEntity recentClinicByPatientCode(String hospitalId, String patientCode) { return this.baseMapper.recentClinic(hospitalId,patientCode); } /** * 从his同步病人数据-异步 * @param hospitalId * @param patientCode */ @Async public void asyncFromHis(String hospitalId, String patientCode) { } }