From 0c5e6cf17f98bfd797fa622b44de094b34755b47 Mon Sep 17 00:00:00 2001
From: hongawen <83944980@qq.com>
Date: Mon, 13 May 2024 10:19:18 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=8A=B6=E6=80=81=E5=8F=98?=
=?UTF-8?q?=E5=8C=96=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=B8=9A=E5=8A=A1=E8=A1=A8?=
=?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pqs-bpm/bpm-boot/pom.xml | 6 +++
.../bpm/controller/BpmTaskController.java | 2 +-
.../BpmProcessInstanceEventPublisher.java | 1 +
.../BpmProcessInstanceStatusEvent.java | 2 +-
...BpmProcessInstanceStatusEventListener.java | 34 +++++++++++++++++
.../business/BpmUserReportStatusListener.java | 27 ++++++++++++++
.../bpm/utils/BpmProcessInstanceConvert.java | 3 +-
.../api/UserReportFeignClient.java | 22 +++++++++++
.../UserReportFeignClientFallbackFactory.java | 37 +++++++++++++++++++
.../user/UserReportManageController.java | 9 +++++
.../service/user/UserReportPOService.java | 2 +
.../user/impl/UserReportPOServiceImpl.java | 9 +++++
12 files changed, 150 insertions(+), 4 deletions(-)
rename pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/{event => listener}/BpmProcessInstanceStatusEvent.java (96%)
create mode 100644 pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEventListener.java
create mode 100644 pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmUserReportStatusListener.java
create mode 100644 pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserReportFeignClient.java
create mode 100644 pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/UserReportFeignClientFallbackFactory.java
diff --git a/pqs-bpm/bpm-boot/pom.xml b/pqs-bpm/bpm-boot/pom.xml
index 71258ea2f..99ae65816 100644
--- a/pqs-bpm/bpm-boot/pom.xml
+++ b/pqs-bpm/bpm-boot/pom.xml
@@ -32,6 +32,12 @@
${project.version}
+
+ com.njcn
+ supervision-api
+ ${project.version}
+
+
com.njcn
user-api
diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/controller/BpmTaskController.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/controller/BpmTaskController.java
index b7e82e675..391ec305f 100644
--- a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/controller/BpmTaskController.java
+++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/controller/BpmTaskController.java
@@ -229,7 +229,7 @@ public class BpmTaskController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
- @GetMapping("/return")
+ @PostMapping("/return")
@ApiOperation("回退任务")
@ApiImplicitParam(name = "bpmTaskReturnParam", value = "查询参数", required = true)
public HttpResult returnTask(@Validated @RequestBody BpmTaskReturnParam bpmTaskReturnParam) {
diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceEventPublisher.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceEventPublisher.java
index 71edf0212..5ba4491ac 100644
--- a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceEventPublisher.java
+++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceEventPublisher.java
@@ -1,5 +1,6 @@
package com.njcn.bpm.event;
+import com.njcn.bpm.listener.BpmProcessInstanceStatusEvent;
import lombok.AllArgsConstructor;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.validation.annotation.Validated;
diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceStatusEvent.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEvent.java
similarity index 96%
rename from pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceStatusEvent.java
rename to pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEvent.java
index ce90b861e..505eab476 100644
--- a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/event/BpmProcessInstanceStatusEvent.java
+++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEvent.java
@@ -1,4 +1,4 @@
-package com.njcn.bpm.event;
+package com.njcn.bpm.listener;
import lombok.Data;
import org.springframework.context.ApplicationEvent;
diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEventListener.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEventListener.java
new file mode 100644
index 000000000..d16b08c5c
--- /dev/null
+++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/BpmProcessInstanceStatusEventListener.java
@@ -0,0 +1,34 @@
+package com.njcn.bpm.listener;
+
+import cn.hutool.core.util.StrUtil;
+import org.springframework.context.ApplicationListener;
+
+/**
+ * {@link BpmProcessInstanceStatusEvent} 的监听器
+ *
+ * @author 芋道源码
+ */
+public abstract class BpmProcessInstanceStatusEventListener
+ implements ApplicationListener {
+
+ @Override
+ public final void onApplicationEvent(BpmProcessInstanceStatusEvent event) {
+ if (!StrUtil.equals(event.getProcessDefinitionKey(), getProcessDefinitionKey())) {
+ return;
+ }
+ onEvent(event);
+ }
+
+ /**
+ * @return 返回监听的流程定义 Key
+ */
+ protected abstract String getProcessDefinitionKey();
+
+ /**
+ * 处理事件
+ *
+ * @param event 事件
+ */
+ protected abstract void onEvent(BpmProcessInstanceStatusEvent event);
+
+}
diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmUserReportStatusListener.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmUserReportStatusListener.java
new file mode 100644
index 000000000..e1082b64e
--- /dev/null
+++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmUserReportStatusListener.java
@@ -0,0 +1,27 @@
+package com.njcn.bpm.listener.business;
+
+import com.njcn.bpm.listener.BpmProcessInstanceStatusEvent;
+import com.njcn.bpm.listener.BpmProcessInstanceStatusEventListener;
+import com.njcn.supervision.api.UserReportFeignClient;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+
+@Component
+public class BpmUserReportStatusListener extends BpmProcessInstanceStatusEventListener {
+
+ @Resource
+ private UserReportFeignClient userReportFeignClient;
+
+ @Override
+ protected String getProcessDefinitionKey() {
+ return "build_user_info";
+ }
+
+ @Override
+ protected void onEvent(BpmProcessInstanceStatusEvent event) {
+ userReportFeignClient.updateUserReportStatus(event.getBusinessKey(), event.getStatus());
+ }
+
+}
diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/utils/BpmProcessInstanceConvert.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/utils/BpmProcessInstanceConvert.java
index 65c20c817..7fff0b295 100644
--- a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/utils/BpmProcessInstanceConvert.java
+++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/utils/BpmProcessInstanceConvert.java
@@ -1,6 +1,6 @@
package com.njcn.bpm.utils;
-import com.njcn.bpm.event.BpmProcessInstanceStatusEvent;
+import com.njcn.bpm.listener.BpmProcessInstanceStatusEvent;
import com.njcn.bpm.pojo.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
import com.njcn.bpm.pojo.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
import com.njcn.bpm.pojo.dto.PageResult;
@@ -9,7 +9,6 @@ import com.njcn.bpm.pojo.po.BpmProcessDefinitionInfo;
import com.njcn.bpm.pojo.vo.BpmProcessDefinitionInfoVO;
import com.njcn.bpm.pojo.vo.instance.BpmProcessInstanceVO;
import com.njcn.user.pojo.po.Dept;
-import com.njcn.user.pojo.po.User;
import com.njcn.user.pojo.vo.UserVO;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.repository.ProcessDefinition;
diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserReportFeignClient.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserReportFeignClient.java
new file mode 100644
index 000000000..d8e19b348
--- /dev/null
+++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserReportFeignClient.java
@@ -0,0 +1,22 @@
+package com.njcn.supervision.api;
+
+import com.njcn.common.pojo.constant.ServerInfo;
+import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.supervision.api.fallback.UserReportFeignClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+
+/**
+ * 流程实例 Api 接口
+ *
+ * @author 芋道源码
+ */
+@FeignClient(value = ServerInfo.SUPERVISION, path = "/userReport", fallbackFactory = UserReportFeignClientFallbackFactory.class)
+public interface UserReportFeignClient {
+
+ @GetMapping("/updateUserReportStatus")
+ HttpResult