فهرست منبع

修改
1、退住申请时存在离住未返院记录不能退住
BUGFIX
1、修复批量生成账单时对试住长者也处理的问题

liangwenxuan 3 هفته پیش
والد
کامیت
cbf3b94adf

+ 1 - 0
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java

@@ -100,4 +100,5 @@ public interface ErrorCodeConstants {
     // ========== 校验规则 1-002-001-000 ==========
     ErrorCode APPLY_RETREAT_CURRENT_EXPENSE_ORDER_NOT_EXISTS = new ErrorCode(1_002_001_001, "费用截止日期月无该长者账单,请先生成!");
     ErrorCode APPLY_RETREAT_ASK_LEAVE_EXISTS = new ErrorCode(1_002_001_002, "长者存在未返院登记记录");
+    ErrorCode APPLY_RETREAT_TEMP_OUT_EXISTS = new ErrorCode(1_002_001_003, "长者存在未返院的离住记录,不能申请退住");
 }

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/bpm/BpmElderlyExpenseApiImpl.java

@@ -56,6 +56,7 @@ import java.util.stream.Collectors;
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.APPLY_RETREAT_ASK_LEAVE_EXISTS;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.APPLY_RETREAT_CURRENT_EXPENSE_ORDER_NOT_EXISTS;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.APPLY_RETREAT_TEMP_OUT_EXISTS;
 import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
 import static cn.iocoder.yudao.module.system.enums.NoticeConstants.REFUND_SETTLEMENT_HANDLE_URL;
 import static cn.iocoder.yudao.module.system.enums.change.ChangeConstants.RETREAT_DAILY_PAY_REMARK;
@@ -96,6 +97,8 @@ public class BpmElderlyExpenseApiImpl implements BpmElderlyExpenseApi {
 
     @Autowired
     private ElderlyAskLeaveMapper askLeaveMapper;
+    @Autowired
+    private ElderlyTempOutMapper elderlyTempOutMapper;
     @Resource
     private RefundSettlementOrderService refundSettlementOrderService;
     @Resource
@@ -455,6 +458,13 @@ public class BpmElderlyExpenseApiImpl implements BpmElderlyExpenseApi {
         if(CollectionUtil.isNotEmpty(elderlyAskLeaveDOS)){
             throw exception(APPLY_RETREAT_ASK_LEAVE_EXISTS);
         }
+        // 检查是否存在未返院的离住记录
+        List<ElderlyTempOutDO> elderlyTempOutDOS = elderlyTempOutMapper.selectList(new LambdaQueryWrapperX<ElderlyTempOutDO>()
+                .eq(ElderlyTempOutDO::getElderId, elderId)
+                .eq(ElderlyTempOutDO::getOutStatus, 1));
+        if(CollectionUtil.isNotEmpty(elderlyTempOutDOS)){
+            throw exception(APPLY_RETREAT_TEMP_OUT_EXISTS);
+        }
     }
 
     private void updateExpenseItemEndDate(Long elderId, LocalDate endDate) {

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseOrderServiceImpl.java

@@ -2366,6 +2366,9 @@ public class ExpenseOrderServiceImpl implements ExpenseOrderService {
             // 账单不存在
             if (expenseOrder == null) {
                 try{
+                    if(elderlyInfo.getInStatusType() == 2){
+                        taskStatusManager.addProcessDetail(taskId, elderlyInfo.getId(), elderlyInfo.getElderName(), "SKIPPED", "试住长者不生成月度账单");
+                    }
                     handleNewExpenseOrder(elderlyInfo, elderId, tenantId, billingMonth, billYearMonth, expireYearMonth, expireTime);
                     if (!checkContractNearlyExpire(elderId, billingMonth)) {
                         if (taskId != null) {