From e31a2fcff5f794c9ce4dcaaf5a6bba1309a87638 Mon Sep 17 00:00:00 2001 From: aikai Date: Wed, 28 Aug 2024 15:51:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(bpm):=20=E4=BF=AE=E5=A4=8D=E8=B4=A2?= =?UTF-8?q?=E5=8A=A1=E6=94=AF=E4=BB=98=E9=83=A8=E9=97=A8ID=E4=B8=BAnull?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 流程管理中,财务支付部门ID此前未正确填充,导致部门信息缺失。此修复引入了获取用户信息的新调用, 以确保在创建财务支付记录时,用户的部门ID正确分配。 --- .../module/bpm/service/oa/BpmOACashServiceImpl.java | 13 +++++++++++-- .../bpm/service/oa/BpmOAImprestServiceImpl.java | 8 +++++++- .../bpm/service/oa/BpmOAProcurePayServiceImpl.java | 5 +++++ .../service/oa/BpmOAReimbursementServiceImpl.java | 3 +++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java index 16d44e4d..1cb9edb8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java @@ -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 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 cashItemDOs = getCashItem(cash.getId()); //获取部门信息map - Map deptMap = deptApi.getDeptMap(convertSet(cashItemDOs, BpmOACashItemDO::getDeptId)); + Map deptMap = deptApi.getDeptMap(convertSet(cashItemDOs, BpmOACashItemDO::getDeptId)); // 获取银行卡信息 BankRespDTO bankRespDTO = null; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java index c2ad290e..997c865e 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java @@ -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 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) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcurePayServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcurePayServiceImpl.java index 8e71cb1d..ea0bc0d7 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcurePayServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcurePayServiceImpl.java @@ -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 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) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAReimbursementServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAReimbursementServiceImpl.java index fd2a4350..c12ec47f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAReimbursementServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAReimbursementServiceImpl.java @@ -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 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)