|
@@ -5,19 +5,14 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.api.bpm.vo.ElderlyRetreatRecordRespVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutCreateReqVO;
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutCreateReqVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutPageReqVO;
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutPageReqVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutRespVO;
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutRespVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutUpdateReqVO;
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyTempOutUpdateReqVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseItemRespVO;
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseItemRespVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseOrderSaveVO;
|
|
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseOrderSaveVO;
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.DailyExpensesDO;
|
|
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyTempOutDO;
|
|
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyInfoDO;
|
|
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.ExpenseItemDO;
|
|
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.ExpenseOrderDO;
|
|
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.ExpenseOrderItemDO;
|
|
|
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyContractDO;
|
|
|
|
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.*;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.*;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.*;
|
|
|
import cn.iocoder.yudao.module.system.enums.change.BusinessConstants;
|
|
import cn.iocoder.yudao.module.system.enums.change.BusinessConstants;
|
|
|
import cn.iocoder.yudao.module.system.enums.common.BooleanEnum;
|
|
import cn.iocoder.yudao.module.system.enums.common.BooleanEnum;
|
|
@@ -78,6 +73,9 @@ public class ElderlyTempOutServiceImpl implements ElderlyTempOutService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private ElderlyContractMapper elderlyContractMapper;
|
|
private ElderlyContractMapper elderlyContractMapper;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ElderlyRetreatRecordMapper elderlyRetreatRecordMapper;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void create(ElderlyTempOutCreateReqVO createReq) {
|
|
public void create(ElderlyTempOutCreateReqVO createReq) {
|
|
@@ -142,82 +140,149 @@ public class ElderlyTempOutServiceImpl implements ElderlyTempOutService {
|
|
|
YearMonth billYm = YearMonth.from(outTime);
|
|
YearMonth billYm = YearMonth.from(outTime);
|
|
|
String billingMonth = billYm.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
|
String billingMonth = billYm.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
|
|
|
|
|
|
|
- ExpenseOrderDO monthOrder = expenseOrderMapper.selectOne(new LambdaQueryWrapperX<ExpenseOrderDO>()
|
|
|
|
|
|
|
+ // 查询离住当月及之后的月度/入院账单,账单不存在时自然不会产生任何费用
|
|
|
|
|
+ List<ExpenseOrderDO> monthOrderList = expenseOrderMapper.selectList(new LambdaQueryWrapperX<ExpenseOrderDO>()
|
|
|
.eq(ExpenseOrderDO::getElderId, elderId)
|
|
.eq(ExpenseOrderDO::getElderId, elderId)
|
|
|
- .eq(ExpenseOrderDO::getBillingMonth, billingMonth)
|
|
|
|
|
- .in(ExpenseOrderDO::getType, 1,2));
|
|
|
|
|
- if (monthOrder == null) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (Boolean.TRUE.equals(monthOrder.getConfirmStatus()) || Boolean.TRUE.equals(monthOrder.getIsLock())) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- List<ExpenseOrderItemDO> orderItems = expenseOrderItemMapper.selectList(new LambdaQueryWrapperX<ExpenseOrderItemDO>()
|
|
|
|
|
- .eq(ExpenseOrderItemDO::getExpenseOrderId, monthOrder.getId())
|
|
|
|
|
- .eq(ExpenseOrderItemDO::getExpenseSource, BusinessConstants.EXPENSE_ITEM));
|
|
|
|
|
- if (CollectionUtil.isEmpty(orderItems)) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- LocalDate outDate = outTime.toLocalDate();
|
|
|
|
|
- LocalDate monthEnd = billYm.atEndOfMonth();
|
|
|
|
|
- if (outDate.isAfter(monthEnd)) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- int refundDays = monthEnd.getDayOfMonth() - outDate.getDayOfMonth() + 1;
|
|
|
|
|
- int daysInMonth = billYm.lengthOfMonth();
|
|
|
|
|
-
|
|
|
|
|
- for (ExpenseOrderItemDO item : orderItems) {
|
|
|
|
|
- if (item.getType() == null) {
|
|
|
|
|
- continue;
|
|
|
|
|
- }
|
|
|
|
|
- // 只处理“月固定费用”(床位费/护理费/膳食费/服务费...),排除押金/一次性等
|
|
|
|
|
- if (!item.getExpenseSource().equals(BusinessConstants.EXPENSE_ITEM)) {
|
|
|
|
|
|
|
+ .ge(ExpenseOrderDO::getBillingMonth, billingMonth)
|
|
|
|
|
+ .in(ExpenseOrderDO::getType, 1, 2));
|
|
|
|
|
+ for (ExpenseOrderDO monthOrder : monthOrderList) {
|
|
|
|
|
+ if (monthOrder == null) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- BigDecimal monthAmount = item.getTotalAmount() == null ? BigDecimal.ZERO : item.getTotalAmount();
|
|
|
|
|
- if (monthAmount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
|
|
+ List<ExpenseOrderItemDO> orderItems = expenseOrderItemMapper.selectList(new LambdaQueryWrapperX<ExpenseOrderItemDO>()
|
|
|
|
|
+ .eq(ExpenseOrderItemDO::getExpenseOrderId, monthOrder.getId())
|
|
|
|
|
+ .eq(ExpenseOrderItemDO::getExpenseSource, BusinessConstants.EXPENSE_ITEM));
|
|
|
|
|
+ if (CollectionUtil.isEmpty(orderItems)) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
- BigDecimal dayPrice = monthAmount.divide(BigDecimal.valueOf(daysInMonth), 8, RoundingMode.DOWN);
|
|
|
|
|
- BigDecimal refundAmount = dayPrice.multiply(BigDecimal.valueOf(refundDays)).setScale(2, RoundingMode.HALF_UP).negate();
|
|
|
|
|
- if (refundAmount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ LocalDate outDate = outTime.toLocalDate();
|
|
|
|
|
+ LocalDate monthEnd = billYm.atEndOfMonth();
|
|
|
|
|
+ if (outDate.isAfter(monthEnd)) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 离住冲减不生成日常费用记录:直接写入账单明细(expenseSource=expense_item,金额为负数)
|
|
|
|
|
- ExpenseOrderItemDO orderItem = new ExpenseOrderItemDO();
|
|
|
|
|
- orderItem.setExpenseOrderId(monthOrder.getId());
|
|
|
|
|
- orderItem.setSourceExpenseItemId(item.getSourceExpenseItemId());
|
|
|
|
|
- orderItem.setExpenseSource(BusinessConstants.EXPENSE_ITEM);
|
|
|
|
|
- orderItem.setCount(refundDays);
|
|
|
|
|
- orderItem.setItemName(item.getItemName());
|
|
|
|
|
- orderItem.setItemCategoryName(item.getItemCategoryName());
|
|
|
|
|
- orderItem.setPrice(dayPrice);
|
|
|
|
|
- orderItem.setActualPrice(dayPrice);
|
|
|
|
|
- orderItem.setTotalAmount(refundAmount);
|
|
|
|
|
- orderItem.setRoundAmount(orderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
|
|
- orderItem.setRoundTwoDecimalAmount(orderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
- orderItem.setCreatedTime(new Date());
|
|
|
|
|
- orderItem.setCreatedBy(SecurityFrameworkUtils.getLoginUserNickname());
|
|
|
|
|
- orderItem.setTenantId(tenantId);
|
|
|
|
|
- orderItem.setStartDate(outDate);
|
|
|
|
|
- orderItem.setEndDate(monthEnd);
|
|
|
|
|
- orderItem.setDescription("离住退费冲减:" + outDate + "至" + monthEnd + "共" + refundDays + "天," + item.getItemName());
|
|
|
|
|
- orderItem.setType(item.getType());
|
|
|
|
|
- orderItem.setItemId(item.getItemId());
|
|
|
|
|
- orderItem.setIsMonthlyExpense(BooleanEnum.TRUE.getValue());
|
|
|
|
|
- expenseOrderItemMapper.insert(orderItem);
|
|
|
|
|
- BigDecimal newAmount = monthOrder.getActualAmount() == null ? BigDecimal.ZERO : monthOrder.getActualAmount();
|
|
|
|
|
- newAmount = newAmount.add(orderItem.getTotalAmount().setScale(2, RoundingMode.DOWN));
|
|
|
|
|
- monthOrder.setActualAmount(newAmount);
|
|
|
|
|
- expenseOrderMapper.updateById(monthOrder);
|
|
|
|
|
|
|
+ int refundDays = monthEnd.getDayOfMonth() - outDate.getDayOfMonth() + 1;
|
|
|
|
|
+ int daysInMonth = billYm.lengthOfMonth();
|
|
|
|
|
+
|
|
|
|
|
+ for (ExpenseOrderItemDO item : orderItems) {
|
|
|
|
|
+ if (item.getType() == null) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 只处理“月固定费用”(床位费/护理费/膳食费/服务费...),排除押金/一次性等
|
|
|
|
|
+ if (!item.getExpenseSource().equals(BusinessConstants.EXPENSE_ITEM)) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal monthAmount = item.getTotalAmount() == null ? BigDecimal.ZERO : item.getTotalAmount();
|
|
|
|
|
+ if (monthAmount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ int itemDays = (item.getEndDate() != null && item.getStartDate() != null) ? item.getEndDate().getDayOfMonth() - item.getStartDate().getDayOfMonth() + 1 : daysInMonth;
|
|
|
|
|
+ BigDecimal dayPrice = monthAmount.divide(BigDecimal.valueOf(itemDays), 8, RoundingMode.DOWN);
|
|
|
|
|
+ BigDecimal refundAmount = dayPrice.multiply(BigDecimal.valueOf(refundDays)).setScale(2, RoundingMode.HALF_UP).negate();
|
|
|
|
|
+ if (refundAmount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 账单已缴费、锁定、确认:生成日常费用记录(来源=离住)并写入已缴费账单明细
|
|
|
|
|
+ if (Objects.equals(monthOrder.getPayStatus(), 1) || Boolean.TRUE.equals(monthOrder.getConfirmStatus()) || Boolean.TRUE.equals(monthOrder.getIsLock())) {
|
|
|
|
|
+ DailyExpensesDO dailyExpenses = buildTempOutDailyExpense(elderId, tenantId, monthOrder.getBillOrderNumber(),
|
|
|
|
|
+ item, dayPrice, refundAmount, refundDays, outDate, monthEnd, billingMonth);
|
|
|
|
|
+ dailyExpensesMapper.insert(dailyExpenses);
|
|
|
|
|
+
|
|
|
|
|
+ ExpenseOrderItemDO orderItem = new ExpenseOrderItemDO();
|
|
|
|
|
+ orderItem.setExpenseOrderId(monthOrder.getId());
|
|
|
|
|
+ orderItem.setSourceExpenseItemId(dailyExpenses.getId());
|
|
|
|
|
+ orderItem.setExpenseSource(BusinessConstants.DAILY_EXPENSES);
|
|
|
|
|
+ orderItem.setCount(refundDays);
|
|
|
|
|
+ orderItem.setItemName(dailyExpenses.getItemName());
|
|
|
|
|
+ orderItem.setItemCategoryName(dailyExpenses.getItemCategory());
|
|
|
|
|
+ orderItem.setPrice(dayPrice);
|
|
|
|
|
+ orderItem.setActualPrice(dayPrice);
|
|
|
|
|
+ orderItem.setTotalAmount(refundAmount);
|
|
|
|
|
+ orderItem.setRoundAmount(orderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
|
|
+ orderItem.setRoundTwoDecimalAmount(orderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+ orderItem.setCreatedTime(new Date());
|
|
|
|
|
+ orderItem.setCreatedBy(dailyExpenses.getCreatedBy());
|
|
|
|
|
+ orderItem.setTenantId(tenantId);
|
|
|
|
|
+ orderItem.setStartDate(outDate);
|
|
|
|
|
+ orderItem.setEndDate(monthEnd);
|
|
|
|
|
+ orderItem.setDescription(dailyExpenses.getRemarks());
|
|
|
|
|
+ orderItem.setType(item.getType());
|
|
|
|
|
+ orderItem.setItemId(item.getItemId());
|
|
|
|
|
+ orderItem.setIsMonthlyExpense(BooleanEnum.TRUE.getValue());
|
|
|
|
|
+ expenseOrderItemMapper.insert(orderItem);
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal newAmount = monthOrder.getActualAmount() == null ? BigDecimal.ZERO : monthOrder.getActualAmount();
|
|
|
|
|
+ newAmount = newAmount.add(orderItem.getTotalAmount().setScale(2, RoundingMode.DOWN));
|
|
|
|
|
+ monthOrder.setActualAmount(newAmount);
|
|
|
|
|
+ expenseOrderMapper.updateById(monthOrder);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 账单未缴费:直接生成费用项在未缴费账单中(不生成日常费用记录)
|
|
|
|
|
+ ExpenseOrderItemDO orderItem = new ExpenseOrderItemDO();
|
|
|
|
|
+ orderItem.setExpenseOrderId(monthOrder.getId());
|
|
|
|
|
+ orderItem.setSourceExpenseItemId(item.getSourceExpenseItemId());
|
|
|
|
|
+ orderItem.setExpenseSource(BusinessConstants.EXPENSE_ITEM);
|
|
|
|
|
+ orderItem.setCount(refundDays);
|
|
|
|
|
+ orderItem.setItemName(item.getItemName());
|
|
|
|
|
+ orderItem.setItemCategoryName(item.getItemCategoryName());
|
|
|
|
|
+ orderItem.setPrice(dayPrice);
|
|
|
|
|
+ orderItem.setActualPrice(dayPrice);
|
|
|
|
|
+ orderItem.setTotalAmount(refundAmount);
|
|
|
|
|
+ orderItem.setRoundAmount(orderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
|
|
+ orderItem.setRoundTwoDecimalAmount(orderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+ orderItem.setCreatedTime(new Date());
|
|
|
|
|
+ orderItem.setCreatedBy(SecurityFrameworkUtils.getLoginUserNickname());
|
|
|
|
|
+ orderItem.setTenantId(tenantId);
|
|
|
|
|
+ orderItem.setStartDate(outDate);
|
|
|
|
|
+ orderItem.setEndDate(monthEnd);
|
|
|
|
|
+ orderItem.setDescription("离住退费冲减:" + outDate + "至" + monthEnd + "共" + refundDays + "天," + item.getItemName());
|
|
|
|
|
+ orderItem.setType(item.getType());
|
|
|
|
|
+ orderItem.setItemId(item.getItemId());
|
|
|
|
|
+ orderItem.setIsMonthlyExpense(BooleanEnum.TRUE.getValue());
|
|
|
|
|
+ expenseOrderItemMapper.insert(orderItem);
|
|
|
|
|
+ BigDecimal newAmount = monthOrder.getActualAmount() == null ? BigDecimal.ZERO : monthOrder.getActualAmount();
|
|
|
|
|
+ newAmount = newAmount.add(orderItem.getTotalAmount().setScale(2, RoundingMode.DOWN));
|
|
|
|
|
+ monthOrder.setActualAmount(newAmount);
|
|
|
|
|
+ expenseOrderMapper.updateById(monthOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 构造临时外出离住退费的日常费用记录(费用来源类型=外出)
|
|
|
|
|
+ */
|
|
|
|
|
+ private DailyExpensesDO buildTempOutDailyExpense(Long elderId, Long tenantId, String billOrderNumber,
|
|
|
|
|
+ ExpenseOrderItemDO item, BigDecimal dayPrice, BigDecimal refundAmount,
|
|
|
|
|
+ int refundDays, LocalDate outDate, LocalDate monthEnd, String billingMonth) {
|
|
|
|
|
+ DailyExpensesDO dailyExpenses = new DailyExpensesDO();
|
|
|
|
|
+ dailyExpenses.setElderId(elderId);
|
|
|
|
|
+ dailyExpenses.setExpenseOrderNumber(billOrderNumber);
|
|
|
|
|
+ dailyExpenses.setItemId(item.getItemId());
|
|
|
|
|
+ dailyExpenses.setItemCategory(item.getItemCategoryName());
|
|
|
|
|
+ dailyExpenses.setItemName(item.getItemName());
|
|
|
|
|
+ dailyExpenses.setType(10); // 费用来源类型:3-离住
|
|
|
|
|
+ dailyExpenses.setPrice(dayPrice);
|
|
|
|
|
+ dailyExpenses.setAmount(refundAmount);
|
|
|
|
|
+ dailyExpenses.setRoundAmount(refundAmount.setScale(0, RoundingMode.HALF_UP));
|
|
|
|
|
+ dailyExpenses.setRoundTwoDecimalAmount(refundAmount.setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+ dailyExpenses.setCount(refundDays);
|
|
|
|
|
+ dailyExpenses.setStatus(0);
|
|
|
|
|
+ dailyExpenses.setCreatedBy(SecurityFrameworkUtils.getLoginUserNickname());
|
|
|
|
|
+ dailyExpenses.setCreatedTime(new Date());
|
|
|
|
|
+ dailyExpenses.setAccountingTime(new Date());
|
|
|
|
|
+ dailyExpenses.setStartDate(outDate);
|
|
|
|
|
+ dailyExpenses.setEndDate(monthEnd);
|
|
|
|
|
+ dailyExpenses.setAttributionBillTime(billingMonth);
|
|
|
|
|
+ dailyExpenses.setIsGenerateBill(BooleanEnum.TRUE.getValue());
|
|
|
|
|
+ dailyExpenses.setRemarks("离住退费冲减:" + outDate + "至" + monthEnd + "共" + refundDays + "天," + item.getItemName());
|
|
|
|
|
+ dailyExpenses.setTenantId(tenantId);
|
|
|
|
|
+ return dailyExpenses;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 返院:返院当月,未生成则生成月账单并按天计费;已生成则补固定费
|
|
* 返院:返院当月,未生成则生成月账单并按天计费;已生成则补固定费
|
|
|
* @param elderId
|
|
* @param elderId
|
|
@@ -389,10 +454,30 @@ public class ElderlyTempOutServiceImpl implements ElderlyTempOutService {
|
|
|
if (record.getBedId() != null) {
|
|
if (record.getBedId() != null) {
|
|
|
record.setBedName(buildService.getFullBedNameByBedId(record.getBedId()));
|
|
record.setBedName(buildService.getFullBedNameByBedId(record.getBedId()));
|
|
|
}
|
|
}
|
|
|
|
|
+ if (record.getElderId() != null) {
|
|
|
|
|
+ record.setRetreatRecord(getLatestRetreatRecord(record.getElderId()));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return respPage;
|
|
return respPage;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 查询长者最新的退住申请单(存在则返回,否则返回 null)
|
|
|
|
|
+ */
|
|
|
|
|
+ private ElderlyRetreatRecordRespVO getLatestRetreatRecord(Long elderId) {
|
|
|
|
|
+ if (elderId == null) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ ElderlyRetreatRecordDO retreatRecordDO = elderlyRetreatRecordMapper.selectOne(new LambdaQueryWrapperX<ElderlyRetreatRecordDO>()
|
|
|
|
|
+ .eq(ElderlyRetreatRecordDO::getElderlyId, elderId)
|
|
|
|
|
+ .orderByDesc(ElderlyRetreatRecordDO::getId)
|
|
|
|
|
+ .last("LIMIT 1"));
|
|
|
|
|
+ if (retreatRecordDO == null) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ return BeanUtils.toBean(retreatRecordDO, ElderlyRetreatRecordRespVO.class);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public ElderlyTempOutRespVO get(Long id) {
|
|
public ElderlyTempOutRespVO get(Long id) {
|
|
|
ElderlyTempOutDO dataObject = elderlyTempOutMapper.selectById(id);
|
|
ElderlyTempOutDO dataObject = elderlyTempOutMapper.selectById(id);
|
|
@@ -415,6 +500,9 @@ public class ElderlyTempOutServiceImpl implements ElderlyTempOutService {
|
|
|
if (respVO.getBedId() != null) {
|
|
if (respVO.getBedId() != null) {
|
|
|
respVO.setBedName(buildService.getFullBedNameByBedId(respVO.getBedId()));
|
|
respVO.setBedName(buildService.getFullBedNameByBedId(respVO.getBedId()));
|
|
|
}
|
|
}
|
|
|
|
|
+ if (respVO.getElderId() != null) {
|
|
|
|
|
+ respVO.setRetreatRecord(getLatestRetreatRecord(respVO.getElderId()));
|
|
|
|
|
+ }
|
|
|
return respVO;
|
|
return respVO;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|