|
@@ -5,12 +5,13 @@ import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
|
|
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
|
|
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.expense.vo.OaExpensePageReqVO;
|
|
|
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.expense.vo.OaExpenseSaveReqVO;
|
|
|
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.expense.vo.OaExpensePageReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.expense.vo.OaExpenseRespVO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.expense.vo.OaExpenseSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
|
|
@@ -24,6 +25,8 @@ import cn.iocoder.yudao.module.bpm.enums.DictDataConstants;
|
|
|
import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants;
|
|
|
import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmConstants;
|
|
|
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
|
|
+import cn.iocoder.yudao.module.expense.api.expenseitem.ExpenseItemApi;
|
|
|
+import cn.iocoder.yudao.module.expense.api.expenseitem.dto.ExpenseItemRespDTO;
|
|
|
import cn.iocoder.yudao.module.expense.api.expensetype.ExpenseTypeApi;
|
|
|
import cn.iocoder.yudao.module.expense.api.expensetype.dto.ExpenseTypeRespDTO;
|
|
|
import cn.iocoder.yudao.module.infra.api.file.FileApi;
|
|
@@ -38,23 +41,15 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.flowable.engine.TaskService;
|
|
|
import org.flowable.task.api.Task;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import javax.annotation.Resource;
|
|
|
-import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.expense.OaExpenseDO;
|
|
|
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.expense.OaExpenseObjDO;
|
|
|
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
-
|
|
|
-import cn.iocoder.yudao.module.bpm.dal.mysql.oa.expense.OaExpenseMapper;
|
|
|
-import cn.iocoder.yudao.module.bpm.dal.mysql.oa.expense.OaExpenseObjMapper;
|
|
|
-
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
|
|
|
|
|
@@ -101,6 +96,9 @@ public class OaExpenseServiceImpl implements OaExpenseService {
|
|
|
@Resource
|
|
|
private ExpenseTypeApi expenseTypeApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ExpenseItemApi expenseItemApi;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public Long stagingOaExpense(OaExpenseSaveReqVO stagingReqVO) {
|
|
@@ -565,8 +563,29 @@ public class OaExpenseServiceImpl implements OaExpenseService {
|
|
|
oaExpenseRespVO.setDeptName(dept.getName());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 报销类型名称
|
|
|
+ Long expenseTypeId = oaExpenseDO.getExpenseTypeId();
|
|
|
+ if (expenseTypeId != null) {
|
|
|
+ ExpenseTypeRespDTO expenseType = expenseTypeApi.getExpenseType(expenseTypeId);
|
|
|
+ if (expenseType != null) {
|
|
|
+ oaExpenseRespVO.setExpenseTypeName(expenseType.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 子表数据
|
|
|
List<OaExpenseObjDO> oaExpenseObjDOS = getOaExpenseObjListByExpenseId(oaExpenseDO.getId());
|
|
|
+ if (CollectionUtil.isNotEmpty(oaExpenseObjDOS)) {
|
|
|
+ Set<Long> expenseItemIdSet = oaExpenseObjDOS.stream().map(OaExpenseObjDO::getExpenseItemId).collect(Collectors.toSet());
|
|
|
+ List<ExpenseItemRespDTO> expenseItemList = expenseItemApi.getExpenseItemList(expenseItemIdSet);
|
|
|
+ if (CollectionUtil.isNotEmpty(expenseItemList)) {
|
|
|
+ Map<Long, ExpenseItemRespDTO> expenseItemRespDTOMap = CollectionUtils.convertMap(expenseItemList, ExpenseItemRespDTO::getId);
|
|
|
+ oaExpenseObjDOS.forEach(oaExpenseObjDO -> {
|
|
|
+ ExpenseItemRespDTO expenseItemRespDTO = expenseItemRespDTOMap.get(oaExpenseObjDO.getExpenseItemId());
|
|
|
+ oaExpenseObjDO.setExpenseItemName(expenseItemRespDTO.getName());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
oaExpenseRespVO.setOaExpenseObjs(oaExpenseObjDOS);
|
|
|
|
|
|
String procInstId = oaExpenseDO.getProcInstId();
|