|
@@ -46,10 +46,9 @@ import java.time.ZoneOffset;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
import java.time.temporal.ChronoUnit;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+import java.util.function.Function;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exceptionCustomMsg;
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exceptionCustomMsg;
|
|
@@ -119,6 +118,9 @@ public class ExpenseServiceImpl implements ExpenseService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private ReservationDepositMapper reservationDepositMapper;
|
|
private ReservationDepositMapper reservationDepositMapper;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private SysChargeCategoryMapper sysChargeCategoryMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional
|
|
@Transactional
|
|
@@ -128,7 +130,10 @@ public class ExpenseServiceImpl implements ExpenseService {
|
|
|
List<ExpenseItemDO> monthlyExpenses = createReqVO.getMonthlyExpenses();
|
|
List<ExpenseItemDO> monthlyExpenses = createReqVO.getMonthlyExpenses();
|
|
|
List<ExpenseItemDO> oneTimeExpenses = createReqVO.getOneTimeExpenses();
|
|
List<ExpenseItemDO> oneTimeExpenses = createReqVO.getOneTimeExpenses();
|
|
|
List<ExpenseItemDO> stageExpenses = createReqVO.getStageExpenses();
|
|
List<ExpenseItemDO> stageExpenses = createReqVO.getStageExpenses();
|
|
|
-
|
|
|
|
|
|
|
+ List<SysChargeCategoryDO> sysChargeCategoryDOS = sysChargeCategoryMapper.selectList(new LambdaQueryWrapperX<SysChargeCategoryDO>().eq(SysChargeCategoryDO::getTenantId, TenantContextHolder.getTenantId()));
|
|
|
|
|
+ Map<Long, SysChargeCategoryDO> categoryMap = sysChargeCategoryDOS
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .collect(Collectors.toMap(SysChargeCategoryDO::getId, Function.identity()));
|
|
|
ExpenseDO expense = new ExpenseDO();
|
|
ExpenseDO expense = new ExpenseDO();
|
|
|
BeanUtils.copyProperties(createReqVO, expense);
|
|
BeanUtils.copyProperties(createReqVO, expense);
|
|
|
expense.setCreatedTime(new Date());
|
|
expense.setCreatedTime(new Date());
|
|
@@ -213,6 +218,7 @@ public class ExpenseServiceImpl implements ExpenseService {
|
|
|
|
|
|
|
|
for (ExpenseItemDO item : monthlyExpenses) {
|
|
for (ExpenseItemDO item : monthlyExpenses) {
|
|
|
item.setIsMonthlyExpense(BooleanEnum.TRUE.getValue());
|
|
item.setIsMonthlyExpense(BooleanEnum.TRUE.getValue());
|
|
|
|
|
+ item.setItemCategoryName(categoryMap.getOrDefault(item.getItemCategoryId(),new SysChargeCategoryDO()).getName());
|
|
|
item.setExpenseId(expense.getId());
|
|
item.setExpenseId(expense.getId());
|
|
|
item.setTenantId(createReqVO.getTenantId());
|
|
item.setTenantId(createReqVO.getTenantId());
|
|
|
item.setChangeStartDate(date);
|
|
item.setChangeStartDate(date);
|
|
@@ -262,6 +268,7 @@ public class ExpenseServiceImpl implements ExpenseService {
|
|
|
//计算其他费用
|
|
//计算其他费用
|
|
|
for (ExpenseItemDO item : oneTimeExpenses) {
|
|
for (ExpenseItemDO item : oneTimeExpenses) {
|
|
|
item.setExpenseId(expense.getId());
|
|
item.setExpenseId(expense.getId());
|
|
|
|
|
+ item.setItemCategoryName(categoryMap.getOrDefault(item.getItemCategoryId(),new SysChargeCategoryDO()).getName());
|
|
|
if (item.getIsDeposit() != null && item.getIsDeposit() != 1) {
|
|
if (item.getIsDeposit() != null && item.getIsDeposit() != 1) {
|
|
|
item.setIsOneTimeFee(BooleanEnum.TRUE.getValue());
|
|
item.setIsOneTimeFee(BooleanEnum.TRUE.getValue());
|
|
|
}
|
|
}
|
|
@@ -292,6 +299,7 @@ public class ExpenseServiceImpl implements ExpenseService {
|
|
|
for (ExpenseItemDO stageExpenseItem : stageExpenses) {
|
|
for (ExpenseItemDO stageExpenseItem : stageExpenses) {
|
|
|
stageExpenseItem.setExpenseId(expense.getId());
|
|
stageExpenseItem.setExpenseId(expense.getId());
|
|
|
stageExpenseItem.setTenantId(createReqVO.getTenantId());
|
|
stageExpenseItem.setTenantId(createReqVO.getTenantId());
|
|
|
|
|
+ stageExpenseItem.setItemCategoryName(categoryMap.getOrDefault(stageExpenseItem.getItemCategoryId(),new SysChargeCategoryDO()).getName());
|
|
|
expenseItemMapper.insert(stageExpenseItem);
|
|
expenseItemMapper.insert(stageExpenseItem);
|
|
|
|
|
|
|
|
if (stageExpenseItem.getIsHirePurchase().equals(BooleanEnum.TRUE.getValue())) {
|
|
if (stageExpenseItem.getIsHirePurchase().equals(BooleanEnum.TRUE.getValue())) {
|