From 0e3a6cac9b374fca07b94768f03ecd9ec389acc9 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 24 四月 2024 17:17:40 +0800
Subject: [PATCH] 4、因日志记录的大字段信息太长导致卡顿,所以调整集成日志,操作日志,本地日志,修改表格列表不查询显示大字段,点击详情时才显示详细信息。 5、日志页面增加查询属性(页面显示的属性都加上),支持模糊查询。
---
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java | 86 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 84 insertions(+), 2 deletions(-)
diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java
index a76039d..85cf487 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java
+++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java
@@ -1,19 +1,101 @@
package com.vci.ubcs.flow.engine.envent;
+import com.vci.ubcs.code.feign.IFlowEventClient;
+import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
+import com.vci.ubcs.flow.engine.constant.FlowEngineConstant;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.util.LangBaseUtil;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
+import org.flowable.engine.impl.el.FixedValue;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.launch.constant.TokenConstant;
+import org.springblade.core.tool.utils.WebUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.RestTemplate;
+import javax.annotation.Resource;
+import java.util.List;
import java.util.Map;
@Slf4j
@Component
public class FlowExecutionStartListener implements ExecutionListener {
+ /**
+ * 杩滅▼璋冪敤鍦板潃銆傚垏璁帮細鍚嶇О瑕佷笌娴佺▼涓畾涔夌殑涓�鏍�
+ */
+ private FixedValue remoteMethod;
+
+ /**
+ * 鐘舵�佸�笺�傚垏璁帮細鍚嶇О瑕佷笌娴佺▼涓畾涔夌殑涓�鏍�
+ */
+ private FixedValue statusValue;
+
@Override
public void notify(DelegateExecution execution) {
- Map var = execution.getVariableInstances();
- log.info("鎵ц娴佺▼FlowExecutionStartListener",var);
+ Map variables = execution.getVariables();
+
+ String restURL = remoteMethod.getExpressionText();
+ String status = statusValue.getExpressionText();
+ //鑾峰彇涓氬姟鏁版嵁淇℃伅
+ List<String> oids = (List<String>) variables.get(FlowEngineConstant.OIDS);
+ String btmType = (String) variables.get(FlowEngineConstant.BTMTYPE);
+
+ variables.put(FlowEngineConstant.REMOTE_METHOD,restURL);
+ variables.put(FlowEngineConstant.STATUS_VALUE,status);
+
+ if(CollectionUtils.isEmpty(oids)){
+ throw new VciBaseException("鎵ц鐘舵�佷慨鏀逛簨浠舵椂锛屼笟鍔℃暟鎹畂id涓虹┖锛�");
+ }
+ if(StringUtils.isEmpty(btmType)){
+ throw new VciBaseException("鎵ц鐘舵�佷慨鏀逛簨浠舵椂锛屼笟鍔$被鍨媌tmType涓虹┖锛�");
+ }
+ if(StringUtils.isEmpty(restURL)){
+ throw new VciBaseException("鎵ц鐘舵�佷慨鏀逛簨浠舵椂锛岃繙绋嬭皟鐢ㄥ湴鍧�涓虹┖锛�");
+ }
+ if(StringUtils.isEmpty(status)){
+ throw new VciBaseException("鎵ц鐘舵�佷慨鏀逛簨浠舵椂锛岀姸鎬佷负绌猴紒");
+ }
+
+ FlowStatusDTO flowStatusDTO = new FlowStatusDTO();
+ flowStatusDTO.setBtmType(btmType);
+ flowStatusDTO.setOids(oids);
+ flowStatusDTO.setVariableMap(variables);
+
+ String token = JwtUtil.getToken(WebUtil.getRequest().getHeader(TokenConstant.HEADER));
+ HttpComponentsClientHttpRequestFactory requestFactory=new HttpComponentsClientHttpRequestFactory();
+ requestFactory.setReadTimeout(300000);
+ requestFactory.setConnectionRequestTimeout(300000);
+ requestFactory.setConnectTimeout(300000);
+ RestTemplate restTemplate = new RestTemplate(requestFactory);
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(TokenConstant.HEADER,token);
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ HttpEntity httpEntity = new HttpEntity<>(flowStatusDTO,headers);
+ Map<String, Object> result = null;
+ try {
+ result = restTemplate.postForObject(restURL, httpEntity, Map.class);
+ } catch (HttpClientErrorException e) {
+ throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{},e);
+ }catch (Throwable e){
+ throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{},e);
+ }
+ if(result == null){
+ throw new VciBaseException("涓氬姟浜嬩欢鏃跺�欐病鏈夎繑鍥炲�硷紝涓嶇‘瀹氭槸鍚︽墽琛屾垚鍔�");
+ }
+ if(CollectionUtils.isEmpty(result) && !(Boolean) result.get("success")){
+ throw new VciBaseException((String) result.get("message"));
+ }
}
}
--
Gitblit v1.9.3