From 76bd4f8777bc2ccb8f8ea66d65bfd9bf7e3b9e54 Mon Sep 17 00:00:00 2001 From: Pancaihua <75729660@qq.com> Date: Fri, 2 Aug 2024 16:33:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=AE=A1=E7=90=86=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=AE=A1=E6=89=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpm/service/knows/KnowledgeService.java | 8 ++++- .../service/knows/KnowledgeServiceImpl.java | 11 +++++++ .../listener/BpmKnowledgeStatusListener.java | 31 +++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/listener/BpmKnowledgeStatusListener.java diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeService.java index 5e4c8c6..9c23b02 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeService.java @@ -66,6 +66,12 @@ public interface KnowledgeService { * @return 评论列表 */ List getCommentListByKnowId(Long knowId); - + /** + * 更新请假申请的状态 + * + * @param id 编号 + * @param status 结果 + */ + void updateKnowledgeStatus(Long id, Integer status); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeServiceImpl.java index 60ef00c..aad23e2 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/KnowledgeServiceImpl.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.service.knows; 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.dal.dataobject.oa.BpmOALeaveDO; import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -124,4 +125,14 @@ public class KnowledgeServiceImpl implements KnowledgeService { commentMapper.deleteByKnowId(knowId); } + private void validateLeaveExists(Long id) { + if (knowledgeMapper.selectById(id) == null) { + throw exception(KNOWLEDGE_NOT_EXISTS); + } + } + @Override + public void updateKnowledgeStatus(Long id, Integer status) { + validateLeaveExists(id); + knowledgeMapper.updateById(new KnowledgeDO().setId(id).setFlowStatus(status)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/listener/BpmKnowledgeStatusListener.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/listener/BpmKnowledgeStatusListener.java new file mode 100644 index 0000000..3c9e12f --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/knows/listener/BpmKnowledgeStatusListener.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.bpm.service.knows.listener; + +import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceStatusEvent; +import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceStatusEventListener; +import cn.iocoder.yudao.module.bpm.service.knows.KnowledgeService; +import cn.iocoder.yudao.module.bpm.service.knows.KnowledgeServiceImpl; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * OA 请假单的结果的监听器实现类 + * + * @author 芋道源码 + */ +@Component +public class BpmKnowledgeStatusListener extends BpmProcessInstanceStatusEventListener { + + @Resource + private KnowledgeService knowledgeService; + + @Override + protected String getProcessDefinitionKey() { + return KnowledgeServiceImpl.PROCESS_KEY; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + knowledgeService.updateKnowledgeStatus(Long.parseLong(event.getBusinessKey()), event.getStatus()); + } +}