|
@@ -29,7 +29,9 @@ import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.DishesOrderItemD
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.GroupTenantDO;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.GroupTenantDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyTempOutDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.*;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.*;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyTempOutMapper;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.reservation.VisitRegistrationMapper;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.reservation.VisitRegistrationMapper;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.restaurant.CateringPlanItemMapper;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.restaurant.CateringPlanItemMapper;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.restaurant.CateringPlanMapper;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.restaurant.CateringPlanMapper;
|
|
@@ -167,6 +169,9 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
@Resource
|
|
@Resource
|
|
|
private ElderlyRetreatRecordMapper elderlyRetreatRecordMapper;
|
|
private ElderlyRetreatRecordMapper elderlyRetreatRecordMapper;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private ElderlyTempOutMapper elderlyTempOutMapper;
|
|
|
|
|
+
|
|
|
@Resource
|
|
@Resource
|
|
|
private DepositMapper depositMapper;
|
|
private DepositMapper depositMapper;
|
|
|
|
|
|
|
@@ -816,24 +821,10 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
Page<ElderlyInfoDO> page = new Page<>(pageVO.getPageNo(), pageVO.getPageSize());
|
|
Page<ElderlyInfoDO> page = new Page<>(pageVO.getPageNo(), pageVO.getPageSize());
|
|
|
List<ElderlyInfoDO> list = elderlyInfoMapper.findPage(page, pageVO);
|
|
List<ElderlyInfoDO> list = elderlyInfoMapper.findPage(page, pageVO);
|
|
|
AtomicInteger atomicInteger = new AtomicInteger(1);
|
|
AtomicInteger atomicInteger = new AtomicInteger(1);
|
|
|
- List<Long> elderIds = list.stream().map(ElderlyInfoDO::getId).collect(Collectors.toList());
|
|
|
|
|
- Map<Long, ElderlyContractDO> contractMap = new HashMap<>();
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(elderIds)) {
|
|
|
|
|
- List<ElderlyContractDO> contractList = elderlyContractMapper.selectList(new LambdaQueryWrapperX<ElderlyContractDO>()
|
|
|
|
|
- .in(ElderlyContractDO::getElderId, elderIds)
|
|
|
|
|
- .orderByDesc(ElderlyContractDO::getCreatedTime)
|
|
|
|
|
- .orderByDesc(ElderlyContractDO::getId));
|
|
|
|
|
- for (ElderlyContractDO contract : contractList) {
|
|
|
|
|
- if (contract.getElderId() != null && !contractMap.containsKey(contract.getElderId())) {
|
|
|
|
|
- contractMap.put(contract.getElderId(), contract);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
List<ElderlyBaseInfoExportExcelVO> baseInfoExportExcelList = list.stream().map(e -> {
|
|
List<ElderlyBaseInfoExportExcelVO> baseInfoExportExcelList = list.stream().map(e -> {
|
|
|
ElderlyBaseInfoExportExcelVO baseInfoExportExcelVO = new ElderlyBaseInfoExportExcelVO();
|
|
ElderlyBaseInfoExportExcelVO baseInfoExportExcelVO = new ElderlyBaseInfoExportExcelVO();
|
|
|
BeanUtils.copyProperties(e, baseInfoExportExcelVO);
|
|
BeanUtils.copyProperties(e, baseInfoExportExcelVO);
|
|
|
baseInfoExportExcelVO.setNum(atomicInteger.getAndIncrement());
|
|
baseInfoExportExcelVO.setNum(atomicInteger.getAndIncrement());
|
|
|
- baseInfoExportExcelVO.setContractNumber(contractMap.get(e.getId()) == null ? "" : contractMap.get(e.getId()).getContractNumber());
|
|
|
|
|
baseInfoExportExcelVO.setBirthdayCareDate(e.getBirthday() == null ? null : e.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
|
|
baseInfoExportExcelVO.setBirthdayCareDate(e.getBirthday() == null ? null : e.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
|
|
|
baseInfoExportExcelVO.setBedName(buildService.getFullBedName(e.getId()));
|
|
baseInfoExportExcelVO.setBedName(buildService.getFullBedName(e.getId()));
|
|
|
if (e.getNurseLevelId() != null) {
|
|
if (e.getNurseLevelId() != null) {
|
|
@@ -867,31 +858,9 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
return baseInfoExportExcelVO;
|
|
return baseInfoExportExcelVO;
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
- List<ElderlyContractInfoExportExcelVO> contractInfoExportExcelList = list.stream().map(e -> {
|
|
|
|
|
- ElderlyContractInfoExportExcelVO contractInfoExportExcelVO = new ElderlyContractInfoExportExcelVO();
|
|
|
|
|
- BeanUtils.copyProperties(e, contractInfoExportExcelVO);
|
|
|
|
|
- ElderlyContractDO contractDO = contractMap.get(e.getId());
|
|
|
|
|
- if (contractDO != null) {
|
|
|
|
|
- contractInfoExportExcelVO.setContractNumber(contractDO.getContractNumber());
|
|
|
|
|
- contractInfoExportExcelVO.setBeginTime(contractDO.getBeginTime());
|
|
|
|
|
- contractInfoExportExcelVO.setExpireTime(contractDO.getExpireTime());
|
|
|
|
|
- contractInfoExportExcelVO.setContractTerm(contractDO.getContractTerm());
|
|
|
|
|
- }
|
|
|
|
|
- contractInfoExportExcelVO.setBedName(buildService.getFullBedName(e.getId()));
|
|
|
|
|
- if (e.getNurseLevelId() != null) {
|
|
|
|
|
- NurseLevelDO nurseLevelDO = nurseLevelMapper.selectById(e.getNurseLevelId());
|
|
|
|
|
- contractInfoExportExcelVO.setNursingLevelName(nurseLevelDO == null ? null : nurseLevelDO.getNurseLevelName());
|
|
|
|
|
- }
|
|
|
|
|
- return contractInfoExportExcelVO;
|
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- for (int i = 0; i < contractInfoExportExcelList.size(); i++) {
|
|
|
|
|
- contractInfoExportExcelList.get(i).setNum(i + 1);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
dataMap.put("baseInfo", baseInfoExportExcelList);
|
|
dataMap.put("baseInfo", baseInfoExportExcelList);
|
|
|
- dataMap.put("contractInfo", contractInfoExportExcelList);
|
|
|
|
|
|
|
+ dataMap.put("contractInfo", new ArrayList<ElderlyContractInfoExportExcelVO>());
|
|
|
return dataMap;
|
|
return dataMap;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1534,8 +1503,8 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
LocalDate today = LocalDate.now();
|
|
LocalDate today = LocalDate.now();
|
|
|
- LocalDate weekStart = today.with(DayOfWeek.MONDAY);
|
|
|
|
|
- LocalDate weekEnd = today.with(DayOfWeek.SUNDAY);
|
|
|
|
|
|
|
+ LocalDate weekStart = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.SATURDAY));
|
|
|
|
|
+ LocalDate weekEnd = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.FRIDAY));
|
|
|
LocalDate monthStart = today.withDayOfMonth(1);
|
|
LocalDate monthStart = today.withDayOfMonth(1);
|
|
|
|
|
|
|
|
LocalDateTime weekStartDateTime = weekStart.atStartOfDay();
|
|
LocalDateTime weekStartDateTime = weekStart.atStartOfDay();
|
|
@@ -1809,8 +1778,10 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
ElderlyHomeOverviewSummary overviewSummary = new ElderlyHomeOverviewSummary();
|
|
ElderlyHomeOverviewSummary overviewSummary = new ElderlyHomeOverviewSummary();
|
|
|
HomeOverviewSummaryDO homeOverviewSummaryDO = null;
|
|
HomeOverviewSummaryDO homeOverviewSummaryDO = null;
|
|
|
List<HomeOverviewSummaryDO> homeOverviewSummaryDOS = overviewSummaryMapper.selectList();
|
|
List<HomeOverviewSummaryDO> homeOverviewSummaryDOS = overviewSummaryMapper.selectList();
|
|
|
- if (null != homeOverviewSummaryDOS) {
|
|
|
|
|
|
|
+ if (null != homeOverviewSummaryDOS && !homeOverviewSummaryDOS.isEmpty()) {
|
|
|
homeOverviewSummaryDO = homeOverviewSummaryDOS.get(0);
|
|
homeOverviewSummaryDO = homeOverviewSummaryDOS.get(0);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ homeOverviewSummaryDO = new HomeOverviewSummaryDO();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 总床位数量
|
|
// 总床位数量
|
|
@@ -1824,7 +1795,7 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
bedCount = resultCount == null ? "0" : resultCount.toString();
|
|
bedCount = resultCount == null ? "0" : resultCount.toString();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 入住数
|
|
|
|
|
|
|
+ // 入住数(剔除离住未返院)
|
|
|
String checkInBedCount = null;
|
|
String checkInBedCount = null;
|
|
|
if (StringUtil.isNotEmptyORNull(homeOverviewSummaryDO.getCheckInCount()) && reqVO.getQueryFlag() == 1) {
|
|
if (StringUtil.isNotEmptyORNull(homeOverviewSummaryDO.getCheckInCount()) && reqVO.getQueryFlag() == 1) {
|
|
|
checkInBedCount = homeOverviewSummaryDO.getCheckInCount();
|
|
checkInBedCount = homeOverviewSummaryDO.getCheckInCount();
|
|
@@ -1834,28 +1805,40 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
.eq(ElderlyInfoDO::getDeleted, 0)
|
|
.eq(ElderlyInfoDO::getDeleted, 0)
|
|
|
.eq(ElderlyInfoDO::getOrgType, 1)
|
|
.eq(ElderlyInfoDO::getOrgType, 1)
|
|
|
.in(ElderlyInfoDO::getTenantId, reqVO.getTenantIds()));
|
|
.in(ElderlyInfoDO::getTenantId, reqVO.getTenantIds()));
|
|
|
- checkInBedCount = resultCount == null ? "0" : resultCount.toString();
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Long tempOutCount = elderlyTempOutMapper.selectCount(new LambdaQueryWrapperX<ElderlyTempOutDO>()
|
|
|
|
|
+ .eq(ElderlyTempOutDO::getOutStatus, 1)
|
|
|
|
|
+ .in(ElderlyTempOutDO::getTenantId, reqVO.getTenantIds()));
|
|
|
|
|
+
|
|
|
|
|
+ long checkInCount = (resultCount == null ? 0L : resultCount) - (tempOutCount == null ? 0L : tempOutCount);
|
|
|
|
|
+ checkInBedCount = String.valueOf(Math.max(checkInCount, 0L));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 离住数(未返院)
|
|
|
|
|
+ String tempOutCountStr;
|
|
|
|
|
+ Long resultCount = elderlyTempOutMapper.selectCount(new LambdaQueryWrapperX<ElderlyTempOutDO>()
|
|
|
|
|
+ .eq(ElderlyTempOutDO::getOutStatus, 1)
|
|
|
|
|
+ .in(ElderlyTempOutDO::getTenantId, reqVO.getTenantIds()));
|
|
|
|
|
+ tempOutCountStr = resultCount == null ? "0" : resultCount.toString();
|
|
|
|
|
|
|
|
// 退住数
|
|
// 退住数
|
|
|
- String retreatCount = null;
|
|
|
|
|
|
|
+ String retreatCountStr = null;
|
|
|
if (StringUtil.isNotEmptyORNull(homeOverviewSummaryDO.getRetreatCount()) && reqVO.getQueryFlag() == 1) {
|
|
if (StringUtil.isNotEmptyORNull(homeOverviewSummaryDO.getRetreatCount()) && reqVO.getQueryFlag() == 1) {
|
|
|
- retreatCount = homeOverviewSummaryDO.getRetreatCount();
|
|
|
|
|
|
|
+ retreatCountStr = homeOverviewSummaryDO.getRetreatCount();
|
|
|
} else {
|
|
} else {
|
|
|
// 计算过去一个月的时间范围
|
|
// 计算过去一个月的时间范围
|
|
|
LocalDate today = LocalDate.now();
|
|
LocalDate today = LocalDate.now();
|
|
|
LocalDateTime endDate = today.atStartOfDay();
|
|
LocalDateTime endDate = today.atStartOfDay();
|
|
|
LocalDateTime startDate = endDate.minusMonths(1);
|
|
LocalDateTime startDate = endDate.minusMonths(1);
|
|
|
|
|
|
|
|
- Long resultCount = elderlyInfoMapper.selectCount(new LambdaQueryWrapperX<ElderlyInfoDO>()
|
|
|
|
|
|
|
+ Long retreatCount = elderlyInfoMapper.selectCount(new LambdaQueryWrapperX<ElderlyInfoDO>()
|
|
|
.eq(ElderlyInfoDO::getInStatus, 2)
|
|
.eq(ElderlyInfoDO::getInStatus, 2)
|
|
|
.eq(ElderlyInfoDO::getDeleted, 0)
|
|
.eq(ElderlyInfoDO::getDeleted, 0)
|
|
|
.eq(ElderlyInfoDO::getOrgType, 1)
|
|
.eq(ElderlyInfoDO::getOrgType, 1)
|
|
|
.ge(ElderlyInfoDO::getCheckOutTime, startDate)
|
|
.ge(ElderlyInfoDO::getCheckOutTime, startDate)
|
|
|
.lt(ElderlyInfoDO::getCheckOutTime, endDate)
|
|
.lt(ElderlyInfoDO::getCheckOutTime, endDate)
|
|
|
.in(ElderlyInfoDO::getTenantId, reqVO.getTenantIds()));
|
|
.in(ElderlyInfoDO::getTenantId, reqVO.getTenantIds()));
|
|
|
- retreatCount = resultCount == null ? "0" : resultCount.toString();
|
|
|
|
|
|
|
+ retreatCountStr = retreatCount == null ? "0" : retreatCount.toString();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (reqVO.getQueryFlag() == 2) {
|
|
if (reqVO.getQueryFlag() == 2) {
|
|
@@ -1908,7 +1891,8 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
overviewSummary.setServiceCount(homeOverviewSummaryDO.getServiceCount());
|
|
overviewSummary.setServiceCount(homeOverviewSummaryDO.getServiceCount());
|
|
|
overviewSummary.setPlanBedCount(homeOverviewSummaryDO.getPlanBedCount());
|
|
overviewSummary.setPlanBedCount(homeOverviewSummaryDO.getPlanBedCount());
|
|
|
overviewSummary.setTenantCount(tenantCount.toString());
|
|
overviewSummary.setTenantCount(tenantCount.toString());
|
|
|
- overviewSummary.setRetreatCount(retreatCount);
|
|
|
|
|
|
|
+ overviewSummary.setRetreatCount(retreatCountStr);
|
|
|
|
|
+ overviewSummary.setLeaveCount(tempOutCountStr);
|
|
|
overviewSummary.setCommunityCount(homeOverviewSummaryDO.getCommunityCount());
|
|
overviewSummary.setCommunityCount(homeOverviewSummaryDO.getCommunityCount());
|
|
|
overviewSummary.setHomeBasedServiceCount(homeOverviewSummaryDO.getHomeBasedServiceCount());
|
|
overviewSummary.setHomeBasedServiceCount(homeOverviewSummaryDO.getHomeBasedServiceCount());
|
|
|
overviewSummary.setHomeBasedCateringCount(homeOverviewSummaryDO.getHomeBasedCateringCount());
|
|
overviewSummary.setHomeBasedCateringCount(homeOverviewSummaryDO.getHomeBasedCateringCount());
|
|
@@ -1952,7 +1936,6 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
business.setCheckInCount(checkInCount);
|
|
business.setCheckInCount(checkInCount);
|
|
|
return business;
|
|
return business;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
ElderlyHomeRespVO getHouseholdAndEconomic(ElderlyInfoHomeDataReqVO reqVO) {
|
|
ElderlyHomeRespVO getHouseholdAndEconomic(ElderlyInfoHomeDataReqVO reqVO) {
|
|
|
ElderlyHomeRespVO respVO = new ElderlyHomeRespVO();
|
|
ElderlyHomeRespVO respVO = new ElderlyHomeRespVO();
|
|
|
ElderlyHomeHousehold household = new ElderlyHomeHousehold();
|
|
ElderlyHomeHousehold household = new ElderlyHomeHousehold();
|
|
@@ -3064,3 +3047,4 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|