Просмотр исходного кода

fix: 流程数据统一处理类

gufj 6 месяцев назад
Родитель
Сommit
b6df58ecd1

+ 32 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomizeProcessController.java

@@ -0,0 +1,32 @@
+package com.wx.blink.backend.controller;
+
+import com.cloud.sa.flow.commom.aspect.EventProgram;
+import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.backend.service.IBlinkCustomizeProcessService;
+import com.wx.blink.base.common.annoation.NoNeedLogin;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author gufj
+ * @date 2025/07/2
+ */
+@RestController
+@Tag(name = "流程数据统一接口")
+public class BlinkCustomizeProcessController {
+
+    @Resource
+    private IBlinkCustomizeProcessService processService;
+
+    @PostMapping("/supports/common/process/handle")
+    @NoNeedLogin
+    @EventProgram
+    public ResponseDTO<String> supportCommonProcessHandle(@RequestBody StInstanceEvent event) {
+        return processService.supportCommonProcessHandle(event);
+    }
+}

+ 0 - 8
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkProviderController.java

@@ -35,14 +35,6 @@ public class BlinkProviderController {
         return providerService.supportsProviderCreate(dto);
     }
 
-    @PostMapping("/agent/project/agentOffer/update")
-    @NoNeedLogin
-    @EventProgram
-    public StResult updateAgentOfferProject(@RequestBody StInstanceEvent event) {
-        // agentConstructionProjectRepository.updateAgentOfferProject(event);
-        return StResult.success();
-    }
-
     @Operation(summary = "查询服务商列表")
     @PostMapping("/supports/provider/queryPage")
     public ResponseDTO<PageResult<BlinkProviderDTO>> supportsProviderQueryPage(@RequestBody @Valid BlinkProviderQry qry) {

+ 54 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/factory/CustomizeProcessFactory.java

@@ -0,0 +1,54 @@
+package com.wx.blink.backend.factory;
+
+import com.wx.blink.backend.handler.CustomizeProcessEventHandler;
+import com.wx.blink.backend.handler.ProviderRegisterProcessSubmitEventHandler;
+import com.wx.blink.base.common.code.SystemErrorCode;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class CustomizeProcessFactory {
+    /**
+     * 状态
+     * 0:保存未提交
+     * 1:驳回到发起人
+     * 2:运行中
+     * 3:流程异常
+     * 4:完成
+     * 5:取消
+     */
+    private static final Map<Integer, Map<String, CustomizeProcessEventHandler>> processorMap = new HashMap<>();
+
+    static {
+        processorMap.put(0, new HashMap<String, CustomizeProcessEventHandler>() {{
+            put("PROVIDER_REGISTER", new ProviderRegisterProcessSubmitEventHandler());
+        }});
+
+        processorMap.put(1, new HashMap<String, CustomizeProcessEventHandler>() {{
+        }});
+
+        processorMap.put(2, new HashMap<String, CustomizeProcessEventHandler>() {{
+        }});
+
+        processorMap.put(3, new HashMap<String, CustomizeProcessEventHandler>() {{
+        }});
+
+        processorMap.put(4, new HashMap<String, CustomizeProcessEventHandler>() {{
+        }});
+
+        processorMap.put(5, new HashMap<String, CustomizeProcessEventHandler>() {{
+        }});
+    }
+
+    public static ResponseDTO<CustomizeProcessEventHandler> getProcessor(int state, String flowCode) {
+        Map<String, CustomizeProcessEventHandler> processors = processorMap.get(state);
+        if (processors != null) {
+            CustomizeProcessEventHandler processor = processors.get(flowCode);
+            if (processor != null) {
+                return ResponseDTO.ok(processor);
+            }
+        }
+        return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "No processor found for state: " + state + " and flowCode: " + flowCode);
+    }
+}

+ 9 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/handler/CustomizeProcessEventHandler.java

@@ -0,0 +1,9 @@
+package com.wx.blink.backend.handler;
+
+import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+public interface CustomizeProcessEventHandler {
+
+    ResponseDTO<String> process(StInstanceEvent event);
+}

+ 16 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/handler/ProviderRegisterProcessSubmitEventHandler.java

@@ -0,0 +1,16 @@
+package com.wx.blink.backend.handler;
+
+import com.alibaba.fastjson.JSONObject;
+import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+/**
+ * 服务商登记发起进行中事件-业务动作
+ */
+public class ProviderRegisterProcessSubmitEventHandler implements CustomizeProcessEventHandler {
+    @Override
+    public ResponseDTO<String> process(StInstanceEvent event) {
+
+        return null;
+    }
+}

+ 29 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomizeProcessServiceImpl.java

@@ -0,0 +1,29 @@
+package com.wx.blink.backend.manager;
+
+import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.backend.factory.CustomizeProcessFactory;
+import com.wx.blink.backend.handler.CustomizeProcessEventHandler;
+import com.wx.blink.backend.service.IBlinkCustomizeProcessService;
+import com.wx.blink.base.common.code.SystemErrorCode;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BlinkCustomizeProcessServiceImpl implements IBlinkCustomizeProcessService {
+
+
+    @Override
+    public ResponseDTO<String> supportCommonProcessHandle(StInstanceEvent event) {
+        if (event != null) {
+            ResponseDTO<CustomizeProcessEventHandler> processorResponse = CustomizeProcessFactory.getProcessor(event.getState(), event.getFlowCode());
+            if (processorResponse.getOk()) {
+                CustomizeProcessEventHandler processor = processorResponse.getData();
+                processor.process(event);
+                return ResponseDTO.ok("Event processed successfully");
+            } else {
+                return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "No processor found for state: " + event.getState() + " and flowCode: " + event.getFlowCode());
+            }
+        }
+        return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR,"No event data");
+    }
+}

+ 16 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomizeProcessService.java

@@ -0,0 +1,16 @@
+package com.wx.blink.backend.service;
+
+import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+public interface IBlinkCustomizeProcessService {
+
+
+    /**
+     * 承接流程运行过程中的业务动作处理完毕后返回json结构,方便流程端进行解析
+     *
+     * @param event
+     * @return
+     */
+    ResponseDTO<String> supportCommonProcessHandle(StInstanceEvent event);
+}

+ 0 - 5
bound-link-api/blink-base/src/main/java/com/wx/blink/base/common/code/ErrorCode.java

@@ -24,11 +24,6 @@ public interface ErrorCode {
      */
     String LEVEL_UNEXPECTED = "unexpected";
 
-    /**
-     * 交付模块
-     */
-    String DELIVER = "deliver";
-
     /**
      * 错误码
      */