DrugInfoFacade.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.lantone.daqe.facade.base;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.lantone.common.exception.Asserts;
  4. import com.lantone.common.util.ListUtil;
  5. import com.lantone.common.util.StringUtil;
  6. import com.lantone.daqe.entity.DrugInfo;
  7. import com.lantone.daqe.service.impl.DrugInfoServiceImpl;
  8. import org.springframework.stereotype.Component;
  9. import java.util.List;
  10. /**
  11. * <p>
  12. * 表名:hos_drug_info 业务类
  13. * </p>
  14. */
  15. @Component
  16. public class DrugInfoFacade extends DrugInfoServiceImpl {
  17. /**
  18. * 判断即将新增/修改的药品是否与已存在的其他药品存在冲突
  19. *
  20. * @param drugInfo 即将新增/修改的药品,有id是修改,无id是新增。
  21. * @return true-存在冲突,false-无冲突
  22. */
  23. public boolean isExist(DrugInfo drugInfo) {
  24. if (drugInfo.getHospitalId() != null
  25. || StringUtil.isBlank(drugInfo.getName())) {
  26. Asserts.fail("判断即将新增/修改的药品是否与已存在的其他药品存在冲突时,hospitalId、code、name不能为空!");
  27. }
  28. QueryWrapper<DrugInfo> drugInfoQueryWrapper = new QueryWrapper<>();
  29. drugInfoQueryWrapper.eq("hospital_id", drugInfo.getHospitalId());
  30. drugInfoQueryWrapper.eq(StringUtil.isNotBlank(drugInfo.getCode()),"code", drugInfo.getCode());
  31. drugInfoQueryWrapper.eq("name", drugInfo.getName());
  32. List<DrugInfo> drugInfoList = list(drugInfoQueryWrapper);
  33. if (drugInfo.getId() == null) {
  34. return ListUtil.isNotEmpty(drugInfoList);
  35. } else {
  36. return drugInfoList.size() > 1
  37. || (drugInfoList.size() == 1
  38. && drugInfoList.get(0).getId().longValue() != drugInfo.getId().longValue());
  39. }
  40. }
  41. /**
  42. * 即将新增/修改的药品与已存在的其他药品存在冲突时,抛出异常
  43. *
  44. * @param drugInfo 即将新增/修改的药品,有id是修改,无id是新增。
  45. */
  46. public void assertIsExist(DrugInfo drugInfo) {
  47. if (isExist(drugInfo)) {
  48. Asserts.fail("与已存在的其他药品存在冲突!");
  49. }
  50. }
  51. }