| | |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.ZoneId; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | } |
| | | List<DonationCompletionVO> donationCompletionVOS = serviceDonatecompletioninfoMapper.selectVOList(donationCompletionVO); |
| | | |
| | | // 一次性取出各捐献基础对应的死亡时间,避免在循环里按 InfoID 逐条查见证表(N+1) |
| | | List<Long> infoIds = new ArrayList<>(); |
| | | for (DonationCompletionVO item : donationCompletionVOS) { |
| | | if (item.getInfoid() != null) { |
| | | infoIds.add(item.getInfoid()); |
| | | } |
| | | } |
| | | Map<Long, Date> deathTimeMap = new HashMap<>(); |
| | | if (!infoIds.isEmpty()) { |
| | | for (ServiceDonationwitness witness : serviceDonationwitnessMapper.selectDeathTimeByInfoIds(infoIds)) { |
| | | if (witness.getInfoid() != null && !deathTimeMap.containsKey(witness.getInfoid())) { |
| | | deathTimeMap.put(witness.getInfoid(), witness.getDeathtime()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | for (DonationCompletionVO donationCompletionVO1 : donationCompletionVOS) { |
| | | // if (donationCompletionVO1.getBirthday() != null) { |
| | | // Map<String, String> map = CalculateDateUtils.calculateAge(donationCompletionVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); |
| | |
| | | donationCompletionVO1.setAge(null); |
| | | donationCompletionVO1.setAge2(null); |
| | | //获取死亡时间,如果获取见证里有死亡时间,则进行计算他的年龄 |
| | | ServiceDonationwitness sdw = new ServiceDonationwitness(); |
| | | sdw.setInfoid(donationCompletionVO1.getInfoid()); |
| | | List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw); |
| | | if (!org.springframework.util.CollectionUtils.isEmpty(serviceDonationwitnessList) && donationCompletionVO1.getBirthday() != null) { |
| | | Date deathtime = serviceDonationwitnessList.get(0).getDeathtime(); |
| | | if (ObjectUtils.isNotEmpty(deathtime)) { |
| | | Date deathtime = deathTimeMap.get(donationCompletionVO1.getInfoid()); |
| | | if (ObjectUtils.isNotEmpty(deathtime) && donationCompletionVO1.getBirthday() != null) { |
| | | Map<String, String> map = CalculateDateUtils.calculateAge(donationCompletionVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); |
| | | if (ObjectUtils.isEmpty(map)) { |
| | | log.error("DonationCompletionVO出生日期:{},DonationCompletionVO死亡日期:{}", donationCompletionVO1.getBirthday(), deathtime); |
| | |
| | | donationCompletionVO1.setAgeunit(map.get("ageUnit")); |
| | | donationCompletionVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null); |
| | | donationCompletionVO1.setAgeunit2(map.get("ageUnit2")); |
| | | } |
| | | } |
| | | } |
| | | |