fix(bpm): 修复财务支付部门ID为null的问题

流程管理中,财务支付部门ID此前未正确填充,导致部门信息缺失。此修复引入了获取用户信息的新调用,
以确保在创建财务支付记录时,用户的部门ID正确分配。
This commit is contained in:
aikai 2024-08-28 15:51:07 +08:00
parent 94a0a48cbc
commit e31a2fcff5
4 changed files with 26 additions and 3 deletions

View File

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
@ -20,11 +21,13 @@ import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashMapper;
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.iocoder.yudao.module.system.api.bank.BankApi;
import cn.iocoder.yudao.module.system.api.bank.dto.BankRespDTO;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@ -80,6 +83,10 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
@Resource
private BankApi bankApi;
@Resource
private AdminUserApi userApi;
@Override
public Long createCash(Long userId, BpmOACashCreateReqVO createReqVO) {
@ -166,9 +173,11 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
}
BpmProcessInstanceExtDO processInstance = bpmProcessInstanceService.getProcessInstanceDO(processInstanceId);
CommonResult<AdminUserRespDTO> user = userApi.getUser(cash.getUserId());
// -- 插入到财务支付表中
financialPaymentService.save(new FinancialPaymentDO()
.setUserId(cash.getUserId())
.setDeptId(user.getData() == null ? null : user.getData().getDeptId())
.setProcessInstanceId(cash.getProcessInstanceId())
.setProcessInstanceName(processInstance.getName())
.setReason(reason)
@ -248,7 +257,7 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
List<BpmOACashItemDO> cashItemDOs = getCashItem(cash.getId());
//获取部门信息map
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(cashItemDOs, BpmOACashItemDO::getDeptId));
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(cashItemDOs, BpmOACashItemDO::getDeptId));
// 获取银行卡信息
BankRespDTO bankRespDTO = null;

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
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.vo.imprest.BpmOAImprestCreateReqVO;
@ -13,6 +14,8 @@ import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAImprestMapper;
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.context.annotation.Lazy;
@ -54,6 +57,8 @@ public class BpmOAImprestServiceImpl extends BpmOABaseService implements BpmOAIm
private BpmProcessInstanceService bpmProcessInstanceService;
@Resource
private FinancialPaymentService financialPaymentService;
@Resource
private AdminUserApi userApi;
@Override
public Long createImprest(Long userId, BpmOAImprestCreateReqVO createReqVO) {
@ -96,10 +101,11 @@ public class BpmOAImprestServiceImpl extends BpmOABaseService implements BpmOAIm
//判断是否有采购报销
BpmOAImprestDO cash = getImprest(id);
BpmProcessInstanceExtDO processInstance = bpmProcessInstanceService.getProcessInstanceDO(processInstanceId);
CommonResult<AdminUserRespDTO> user = userApi.getUser(cash.getUserId());
// -- 插入到财务支付表中
financialPaymentService.save(new FinancialPaymentDO()
.setUserId(cash.getUserId())
.setDeptId(user.getData() == null ? null : user.getData().getDeptId())
.setProcessInstanceId(cash.getProcessInstanceId())
.setReason(cash.getReason())
.setObjectId(id)

View File

@ -29,6 +29,7 @@ import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService;
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.context.annotation.Lazy;
@ -73,6 +74,8 @@ public class BpmOAProcurePayServiceImpl extends BpmOABaseService implements BpmO
private BpmProcessInstanceService bpmProcessInstanceService;
@Resource
private FinancialPaymentService financialPaymentService;
@Resource
private AdminUserApi userApi;
/**
* OA 采购支付对应的流程定义 KEY
@ -176,9 +179,11 @@ public class BpmOAProcurePayServiceImpl extends BpmOABaseService implements BpmO
BpmProcessInstanceExtDO processInstance = bpmProcessInstanceService.getProcessInstanceDO(processInstanceId);
//判断是否有采购报销
BpmOAProcurePayDO cash = getOAProcurePay(id);
CommonResult<AdminUserRespDTO> user = userApi.getUser(cash.getUserId());
// -- 插入到财务支付表中
financialPaymentService.save(new FinancialPaymentDO()
.setUserId(cash.getUserId())
.setDeptId(user.getData() == null ? null : user.getData().getDeptId())
.setProcessInstanceId(cash.getProcessInstanceId())
.setReason(cash.getReason())
.setObjectId(id)

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
@ -179,8 +180,10 @@ public class BpmOAReimbursementServiceImpl extends BpmOABaseService implements B
BpmProcessInstanceExtDO processInstance = bpmProcessInstanceService.getProcessInstanceDO(processInstanceId);
// -- 插入到财务支付表中
CommonResult<AdminUserRespDTO> user = userApi.getUser(bpmOAReimbursementDO.getUserId());
financialPaymentService.save(new FinancialPaymentDO()
.setUserId(bpmOAReimbursementDO.getUserId())
.setDeptId(user.getData() == null ? null : user.getData().getDeptId())
.setProcessInstanceId(bpmOAReimbursementDO.getProcessInstanceId())
.setReason(reason)
.setObjectId(id)