|
|
@@ -108,6 +108,9 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
private BuildBedMapper buildBedMapper;
|
|
|
|
|
|
@Autowired
|
|
|
+ private ElderlyContractMapper elderlyContractMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private AdminUserMapper userMapper;
|
|
|
|
|
|
@Resource
|
|
|
@@ -193,8 +196,26 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
public PageResult<ElderlyInfoDO> findPage(ElderlyInfoPageReqVO pageVO) {
|
|
|
Page<ElderlyInfoDO> page = new Page<>(pageVO.getPageNo(), pageVO.getPageSize());
|
|
|
List<ElderlyInfoDO> list = elderlyInfoMapper.findPage(page, pageVO);
|
|
|
+
|
|
|
+ // 批量查询进行中的合同编号(status = 1)并回填到 contractNumber
|
|
|
+ Map<Long, String> inProgressContractNumberMap = new HashMap<>();
|
|
|
+ List<Long> elderIds = list.stream().map(ElderlyInfoDO::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ if (!elderIds.isEmpty()) {
|
|
|
+ List<ElderlyContractDO> contracts = elderlyContractMapper.selectInProgressByElderIds(elderIds);
|
|
|
+ // 由于 SQL 已按 elder_id asc, created_time desc 排序,这里取每个 elder 的第一条即最新进行中合同
|
|
|
+ for (ElderlyContractDO c : contracts) {
|
|
|
+ if (c.getElderId() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ inProgressContractNumberMap.putIfAbsent(c.getElderId(), c.getContractNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
for (ElderlyInfoDO elderlyInfoDO : list) {
|
|
|
elderlyInfoDO.setBedName(buildService.getFullBedName(elderlyInfoDO.getId()));
|
|
|
+ if (elderlyInfoDO.getId() != null) {
|
|
|
+ elderlyInfoDO.setContractNumber(inProgressContractNumberMap.get(elderlyInfoDO.getId()));
|
|
|
+ }
|
|
|
//统计信息完成度
|
|
|
elderlyInfoStatistics(elderlyInfoDO);
|
|
|
}
|
|
|
@@ -787,17 +808,34 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
BeanUtils.copyProperties(e, baseInfoExportExcelVO);
|
|
|
baseInfoExportExcelVO.setNum(atomicInteger.getAndIncrement());
|
|
|
baseInfoExportExcelVO.setBirthdayCareDate(e.getBirthday() == null ? null : e.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
|
|
|
- //查询亲属信息
|
|
|
- Optional<RelativesDO> optional = relativesMapper.selectList(new LambdaQueryWrapperX<RelativesDO>()
|
|
|
- .eq(RelativesDO::getPeopleId, e.getId())).stream().findFirst();
|
|
|
-
|
|
|
- if (optional.isPresent()) {
|
|
|
- RelativesDO relativesDO = optional.get();
|
|
|
- // 存在长者属性与托养人属性名称一致,需要排除
|
|
|
- BeanUtils.copyProperties(relativesDO, baseInfoExportExcelVO,"idCard","address","papersType");
|
|
|
- baseInfoExportExcelVO.setRelativesPapersType(relativesDO.getPapersType());
|
|
|
- baseInfoExportExcelVO.setRelativesIdCard(relativesDO.getIdCard());
|
|
|
- baseInfoExportExcelVO.setRelativeAddress(relativesDO.getAddress());
|
|
|
+ baseInfoExportExcelVO.setBedName(buildService.getFullBedName(e.getId()));
|
|
|
+ if (e.getNurseLevelId() != null) {
|
|
|
+ NurseLevelDO nurseLevelDO = nurseLevelMapper.selectById(e.getNurseLevelId());
|
|
|
+ baseInfoExportExcelVO.setNurseLevelName(nurseLevelDO == null ? null : nurseLevelDO.getNurseLevelName());
|
|
|
+ }
|
|
|
+ //查询亲属信息(取最早创建的两条:第一托养人、第二托养人)
|
|
|
+ List<RelativesDO> relativesList = relativesMapper.selectList(new LambdaQueryWrapperX<RelativesDO>()
|
|
|
+ .eq(RelativesDO::getPeopleId, e.getId())
|
|
|
+ .orderByAsc(RelativesDO::getId));
|
|
|
+ if (relativesList != null && !relativesList.isEmpty()) {
|
|
|
+ RelativesDO first = relativesList.get(0);
|
|
|
+ BeanUtils.copyProperties(first, baseInfoExportExcelVO, "idCard", "address", "papersType");
|
|
|
+ baseInfoExportExcelVO.setRelativesPapersType(first.getPapersType());
|
|
|
+ baseInfoExportExcelVO.setRelativesIdCard(first.getIdCard());
|
|
|
+ baseInfoExportExcelVO.setRelativeAddress(first.getAddress());
|
|
|
+ }
|
|
|
+ if (relativesList != null && relativesList.size() >= 2) {
|
|
|
+ RelativesDO second = relativesList.get(1);
|
|
|
+ baseInfoExportExcelVO.setSecondName(second.getName());
|
|
|
+ baseInfoExportExcelVO.setSecondRelation(second.getRelation());
|
|
|
+ baseInfoExportExcelVO.setSecondGender(second.getGender());
|
|
|
+ baseInfoExportExcelVO.setSecondPhone(second.getPhone());
|
|
|
+ baseInfoExportExcelVO.setSecondRelativesPapersType(second.getPapersType());
|
|
|
+ baseInfoExportExcelVO.setSecondRelativesIdCard(second.getIdCard());
|
|
|
+ baseInfoExportExcelVO.setSecondTelephone(second.getTelephone());
|
|
|
+ baseInfoExportExcelVO.setSecondWorkUnit(second.getWorkUnit());
|
|
|
+ baseInfoExportExcelVO.setSecondNowAddress(second.getNowAddress());
|
|
|
+ baseInfoExportExcelVO.setSecondRelativeAddress(second.getAddress());
|
|
|
}
|
|
|
return baseInfoExportExcelVO;
|
|
|
}).collect(Collectors.toList());
|