BehospitalInfoFacade.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.diagbot.facade;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.diagbot.dto.BehospitalInfoDTO;
  4. import com.diagbot.service.impl.BehospitalInfoServiceImpl;
  5. import com.diagbot.util.SysUserUtils;
  6. import com.diagbot.vo.BehospitalPageVO;
  7. import org.springframework.stereotype.Component;
  8. import java.util.Calendar;
  9. import java.util.Date;
  10. import java.util.List;
  11. /**
  12. * @Description:
  13. * @author: zhoutg
  14. * @time: 2020/4/12 11:39
  15. */
  16. @Component
  17. public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
  18. public IPage<BehospitalInfoDTO> pageFac(BehospitalPageVO behospitalPageVO) {
  19. behospitalPageVO.setHospitalId(SysUserUtils.getCurrentHospitalID());
  20. IPage<BehospitalInfoDTO> res = getPage(behospitalPageVO);
  21. List<BehospitalInfoDTO> behospitalInfoDTOList = res.getRecords();
  22. for (BehospitalInfoDTO behospitalInfo : behospitalInfoDTOList) {
  23. if (behospitalInfo != null && behospitalInfo.getBirthday() != null) {
  24. behospitalInfo.setAge(getAge(behospitalInfo.getBirthday()));
  25. }
  26. }
  27. return res;
  28. }
  29. /**
  30. * 通过日期计算年龄
  31. *
  32. * @param birthDay
  33. * @return
  34. */
  35. public int getAge(Date birthDay){
  36. Calendar cal = Calendar.getInstance();
  37. if (cal.before(birthDay)) { //出生日期晚于当前时间,无法计算
  38. return 0;
  39. // throw new IllegalArgumentException(
  40. // "The birthDay is before Now.It's unbelievable!");
  41. }
  42. int yearNow = cal.get(Calendar.YEAR); //当前年份
  43. int monthNow = cal.get(Calendar.MONTH); //当前月份
  44. int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); //当前日期
  45. cal.setTime(birthDay);
  46. int yearBirth = cal.get(Calendar.YEAR);
  47. int monthBirth = cal.get(Calendar.MONTH);
  48. int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
  49. int age = yearNow - yearBirth; //计算整岁数
  50. if (monthNow <= monthBirth) {
  51. if (monthNow == monthBirth) {
  52. if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一
  53. }else{
  54. age--;//当前月份在生日之前,年龄减一
  55. }
  56. }
  57. if (age < 0) {
  58. return 0;
  59. }
  60. return age;
  61. }
  62. }