Jelajahi Sumber

修改
1、退住审批通过后长者月度费用结束日期更新为费用结束日期
BUGFIX
1、解决应收报表没过滤零星账单的问题

liangwenxuan 5 hari lalu
induk
melakukan
b145c328d6

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

@@ -32,6 +32,7 @@ import cn.iocoder.yudao.module.system.enums.notice.NotifyPriorityEnum;
 import cn.iocoder.yudao.module.system.enums.notice.NotifyTypeEnum;
 import cn.iocoder.yudao.module.system.service.biz.ExpenseOrderService;
 import cn.iocoder.yudao.module.system.service.biz.RefundSettlementOrderService;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.mzt.logapi.starter.annotation.LogRecord;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -50,6 +51,7 @@ import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
+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;
@@ -117,6 +119,8 @@ public class BpmElderlyExpenseApiImpl implements BpmElderlyExpenseApi {
                 .eq(ElderlyCheckInRecordDO::getCurrentFlag,0));
         // 费用截止日期
         LocalDate costDeadlineDate = elderlyRetreatRecord.getCostDeadlineDate();
+        // 更新费用结束时间
+        updateExpenseItemEndDate(elderlyInfo.getId(),costDeadlineDate);
         YearMonth costDeadlineYearMonth = YearMonth.from(costDeadlineDate);
         // 将费用截止日期后的账单更新为不显示
         expenseOrderMapper.update(new ExpenseOrderDO().setIsShow(Boolean.FALSE),new LambdaQueryWrapperX<ExpenseOrderDO>()
@@ -450,4 +454,15 @@ public class BpmElderlyExpenseApiImpl implements BpmElderlyExpenseApi {
             throw exception(APPLY_RETREAT_ASK_LEAVE_EXISTS);
         }
     }
+
+    private void updateExpenseItemEndDate(Long elderId, LocalDate endDate) {
+        LambdaUpdateWrapper<ExpenseItemDO> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper
+                .eq(ExpenseItemDO::getIsMonthlyExpense, BooleanEnum.TRUE.getValue())
+                .isNull(ExpenseItemDO::getChangeEndDate)
+                .inSql(ExpenseItemDO::getExpenseId,
+                        "SELECT id FROM expense WHERE elder_id = " + elderId)
+                .set(ExpenseItemDO::getChangeEndDate, endDate);
+        expenseItemMapper.update(null, updateWrapper);
+    }
 }

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/ExpenseOrderMapper.xml

@@ -104,7 +104,7 @@
                 LEFT JOIN elderly_expense_subsidy_account eesa ON eesa.elder_id = ei.id
                 LEFT JOIN elderly_balance eb ON eb.elder_id = ei.id
 
-        WHERE 1=1
+        WHERE eeo.type != 4
           <if test="billMonth != null">
               AND eeo.billing_month = #{billMonth}
           </if>