| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package com.coffee.bus.service;
- import cn.hutool.core.collection.CollectionUtil;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.coffee.bus.controller.vo.ClinicStatsVo;
- import com.coffee.bus.entity.BusClinicEntity;
- import com.coffee.bus.entity.BusPatientEntity;
- import com.coffee.bus.mapper.BusClinicMapper;
- import com.coffee.bus.registry.patient.PatientRegistry;
- import com.coffee.bus.service.dto.ClinicResult;
- import com.coffee.bus.service.dto.ClinicStatsQueryResult;
- import com.coffee.bus.service.dto.ClinicStatsReturnResult;
- 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<BusClinicMapper, BusClinicEntity,String> {
- @Autowired
- @Lazy
- private LocalBusPatientService patientService;
- @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 clinicId 临床id
- */
- @Transactional(rollbackFor = Exception.class)
- public void finish(String clinicId, String tenantId) {
- this.finish(Collections.singletonList(clinicId),new Date(),tenantId);
- }
- /**
- * 结束当前医院病号的临床数据
- * @param clinicIds 临床id
- * @param finishTime 临床结束时间
- */
- @Transactional(rollbackFor = Exception.class)
- public void finish(List<String> clinicIds,Date finishTime, String tenantId) {
- this.update(new UpdateWrapper<BusClinicEntity>().lambda()
- .in(BusClinicEntity::getId,clinicIds)
- .set(BusClinicEntity::getFinished,true)
- .set(BusClinicEntity::getEndTime,finishTime));
- //更新病人缓存
- this.listByIds(clinicIds).stream()
- .map(BusClinicEntity::getPatientCode)
- .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) {
- }
- public ClinicStatsReturnResult stats(ClinicStatsVo statsVo) {
- return ClinicStatsReturnResult.of(this.baseMapper.stats(statsVo));
- }
- public IPage<ClinicResult> pageQuery(Page<ClinicResult> page){
- return this.baseMapper.pageQuery(page);
- }
- }
|