LocalBusClinicService.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.coffee.bus.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  4. import com.coffee.bus.entity.BusClinicEntity;
  5. import com.coffee.bus.mapper.BusClinicMapper;
  6. import com.coffee.bus.registry.patient.PatientOperator;
  7. import com.coffee.bus.registry.patient.PatientRegistry;
  8. import com.coffee.bus.registry.patient.bean.PatientCacheInfo;
  9. import com.coffee.common.crud.BaseService;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import java.util.Date;
  15. /**
  16. * @author lifang
  17. * @version 1.0.0
  18. * @ClassName LocalBusHospitalService.java
  19. * @Description TODO
  20. * @createTime 2022年03月19日 09:27:00
  21. */
  22. @Service
  23. @Slf4j
  24. public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClinicEntity,String> {
  25. @Autowired
  26. private PatientRegistry patientRegistry;
  27. @Override
  28. public void validateBeforeSave(BusClinicEntity entity) {
  29. }
  30. @Override
  31. public void validateBeforeUpdate(BusClinicEntity entity) {
  32. }
  33. @Override
  34. public void validateBeforeDelete(String id) {
  35. }
  36. /**
  37. * 判断当前病人是否存在临床信息
  38. * @param hospitalId 医院id
  39. * @param patientCode 病号
  40. * @return
  41. */
  42. public boolean existClinic(String hospitalId,String patientCode){
  43. return this.getOne(new QueryWrapper<BusClinicEntity>().lambda()
  44. .eq(BusClinicEntity::getPatientCode, patientCode)
  45. .eq(BusClinicEntity::getTenantId,hospitalId)
  46. .eq(BusClinicEntity::getFinished, 0)) == null;
  47. }
  48. /**
  49. * 获取当前病号的临床信息
  50. * @param hospitalId
  51. * @param patientCode
  52. * @return
  53. */
  54. public BusClinicEntity getCurrentClinic(String hospitalId,String patientCode){
  55. return this.baseMapper.getCurrentClinic(hospitalId,patientCode);
  56. }
  57. @Override
  58. public boolean save(BusClinicEntity entity) {
  59. return super.save(entity);
  60. }
  61. /**
  62. * 结束当前医院病号的临床数据
  63. * @param patientCode 病号
  64. * @param tenantId 医院id
  65. */
  66. @Transactional(rollbackFor = Exception.class)
  67. public void finish(String patientCode, String tenantId) {
  68. this.update(new UpdateWrapper<BusClinicEntity>().lambda().eq(BusClinicEntity::getPatientCode,patientCode)
  69. .eq(BusClinicEntity::getTenantId,tenantId)
  70. .eq(BusClinicEntity::getFinished,false)
  71. .set(BusClinicEntity::getFinished,true)
  72. .set(BusClinicEntity::getEndTime,new Date()));
  73. //更新病人缓存 todo
  74. PatientOperator<PatientCacheInfo> patient = patientRegistry.getPatient(tenantId, patientCode);
  75. patient.setFinished(true);
  76. }
  77. }