LocalBusClinicService.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.coffee.bus.service;
  2. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  3. import com.coffee.bus.entity.BusClinicEntity;
  4. import com.coffee.bus.mapper.BusClinicMapper;
  5. import com.coffee.bus.registry.patient.PatientOperator;
  6. import com.coffee.bus.registry.patient.PatientRegistry;
  7. import com.coffee.bus.registry.patient.bean.PatientCacheInfo;
  8. import com.coffee.common.crud.BaseService;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.context.annotation.Lazy;
  12. import org.springframework.scheduling.annotation.Async;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.util.*;
  16. /**
  17. * @author lifang
  18. * @version 1.0.0
  19. * @ClassName LocalBusHospitalService.java
  20. * @Description TODO
  21. * @createTime 2022年03月19日 09:27:00
  22. */
  23. @Service
  24. @Slf4j
  25. public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClinicEntity,String> {
  26. @Autowired
  27. @Lazy
  28. private PatientRegistry patientRegistry;
  29. @Override
  30. public void validateBeforeSave(BusClinicEntity entity) {
  31. }
  32. @Override
  33. public void validateBeforeUpdate(BusClinicEntity entity) {
  34. }
  35. @Override
  36. public void validateBeforeDelete(String id) {
  37. }
  38. @Override
  39. public boolean save(BusClinicEntity entity) {
  40. return super.save(entity);
  41. }
  42. /**
  43. * 结束当前医院病号的临床数据
  44. * @param patientCodes 病号
  45. */
  46. @Transactional(rollbackFor = Exception.class)
  47. public void finish(List<String> patientCodes, String tenantId) {
  48. this.update(new UpdateWrapper<BusClinicEntity>().lambda()
  49. .in(BusClinicEntity::getPatientCode,patientCodes)
  50. .eq(BusClinicEntity::getFinished,false)
  51. .set(BusClinicEntity::getFinished,true)
  52. .set(BusClinicEntity::getEndTime,new Date()));
  53. //更新病人缓存
  54. patientCodes.stream().map(code->patientRegistry.getOperator(tenantId,code)).forEach(operator->operator.setFinished(true));
  55. }
  56. /**
  57. * 找到该病号最近的一场手术
  58. * @param hospitalId
  59. * @param patientCode
  60. */
  61. public BusClinicEntity recentClinicByPatientCode(String hospitalId, String patientCode) {
  62. return this.baseMapper.recentClinic(hospitalId,patientCode);
  63. }
  64. /**
  65. * 从his同步病人数据-异步
  66. * @param hospitalId
  67. * @param patientCode
  68. */
  69. @Async
  70. public void asyncFromHis(String hospitalId, String patientCode) {
  71. }
  72. }