!1285 fix: 代码评审修改
Merge pull request !1285 from Lesan/feature/bpm-流程前后置通知
This commit is contained in:
commit
b6f74f3b9b
|
@ -82,13 +82,11 @@ public class BpmModelMetaInfoVO {
|
||||||
@Schema(description = "摘要设置", example = "{}")
|
@Schema(description = "摘要设置", example = "{}")
|
||||||
private SummarySetting summarySetting;
|
private SummarySetting summarySetting;
|
||||||
|
|
||||||
// TODO @lesan:processBeforeTriggerSetting;要不叫这个?主要考虑,notify 留给后续的站内信、短信、邮件这种 notify 通知哈。
|
|
||||||
@Schema(description = "流程前置通知设置", example = "{}")
|
@Schema(description = "流程前置通知设置", example = "{}")
|
||||||
private HttpRequestSetting PreProcessNotifySetting;
|
private HttpRequestSetting processBeforeTriggerSetting;
|
||||||
|
|
||||||
// TODO @lesan:processAfterTriggerSetting
|
|
||||||
@Schema(description = "流程后置通知设置", example = "{}")
|
@Schema(description = "流程后置通知设置", example = "{}")
|
||||||
private HttpRequestSetting PostProcessNotifySetting;
|
private HttpRequestSetting processAfterTriggerSetting;
|
||||||
|
|
||||||
@Schema(description = "流程 ID 规则")
|
@Schema(description = "流程 ID 规则")
|
||||||
@Data
|
@Data
|
||||||
|
|
|
@ -188,16 +188,15 @@ public class BpmProcessDefinitionInfoDO extends BaseDO {
|
||||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||||
private BpmModelMetaInfoVO.SummarySetting summarySetting;
|
private BpmModelMetaInfoVO.SummarySetting summarySetting;
|
||||||
|
|
||||||
// TODO @lesan:processBeforeTriggerSetting;要不叫这个?主要考虑,notify 留给后续的站内信、短信、邮件这种 notify 通知哈。
|
|
||||||
/**
|
/**
|
||||||
* 流程前置通知设置
|
* 流程前置通知设置
|
||||||
*/
|
*/
|
||||||
@TableField(typeHandler = JacksonTypeHandler.class, exist = false) // TODO @芋艿:临时注释 exist,因为要合并 master-jdk17
|
@TableField(typeHandler = JacksonTypeHandler.class, exist = false) // TODO @芋艿:临时注释 exist,因为要合并 master-jdk17
|
||||||
private BpmModelMetaInfoVO.HttpRequestSetting PreProcessNotifySetting;
|
private BpmModelMetaInfoVO.HttpRequestSetting processBeforeTriggerSetting;
|
||||||
/**
|
/**
|
||||||
* 流程后置通知设置
|
* 流程后置通知设置
|
||||||
*/
|
*/
|
||||||
@TableField(typeHandler = JacksonTypeHandler.class, exist = false) // TODO @芋艿:临时注释 exist,因为要合并 master-jdk17
|
@TableField(typeHandler = JacksonTypeHandler.class, exist = false) // TODO @芋艿:临时注释 exist,因为要合并 master-jdk17
|
||||||
private BpmModelMetaInfoVO.HttpRequestSetting PostProcessNotifySetting;
|
private BpmModelMetaInfoVO.HttpRequestSetting processAfterTriggerSetting;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.core.KeyValue;
|
import cn.iocoder.yudao.framework.common.core.KeyValue;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.spring.SpringUtils;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.definition.BpmHttpRequestParamTypeEnum;
|
import cn.iocoder.yudao.module.bpm.enums.definition.BpmHttpRequestParamTypeEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
|
@ -40,11 +41,9 @@ public class BpmHttpRequestUtils {
|
||||||
List<BpmSimpleModelNodeVO.HttpRequestParam> headerParams,
|
List<BpmSimpleModelNodeVO.HttpRequestParam> headerParams,
|
||||||
List<BpmSimpleModelNodeVO.HttpRequestParam> bodyParams,
|
List<BpmSimpleModelNodeVO.HttpRequestParam> bodyParams,
|
||||||
Boolean handleResponse,
|
Boolean handleResponse,
|
||||||
List<KeyValue<String, String>> response,
|
List<KeyValue<String, String>> response) {
|
||||||
// TODO @lesan:RestTemplate 直接通过 springUtil 获取好咧;
|
RestTemplate restTemplate = SpringUtils.getBean(RestTemplate.class);
|
||||||
RestTemplate restTemplate,
|
BpmProcessInstanceService processInstanceService = SpringUtils.getBean(BpmProcessInstanceService.class);
|
||||||
// TODO @lesan:processInstanceService 直接通过 springUtil 获取好咧;
|
|
||||||
BpmProcessInstanceService processInstanceService) {
|
|
||||||
|
|
||||||
// 1.1 设置请求头
|
// 1.1 设置请求头
|
||||||
MultiValueMap<String, String> headers = buildHttpHeaders(processInstance, headerParams);
|
MultiValueMap<String, String> headers = buildHttpHeaders(processInstance, headerParams);
|
||||||
|
@ -55,27 +54,27 @@ public class BpmHttpRequestUtils {
|
||||||
ResponseEntity<String> responseEntity = sendHttpRequest(url, headers, body, restTemplate);
|
ResponseEntity<String> responseEntity = sendHttpRequest(url, headers, body, restTemplate);
|
||||||
|
|
||||||
// 3. 处理返回
|
// 3. 处理返回
|
||||||
// TODO @lesan:可以用 if return,让括号小点
|
if (Boolean.FALSE.equals(handleResponse)) {
|
||||||
if (Boolean.TRUE.equals(handleResponse)) {
|
return;
|
||||||
// 3.1 判断是否需要解析返回值
|
}
|
||||||
if (responseEntity == null
|
// 3.1 判断是否需要解析返回值
|
||||||
|| StrUtil.isEmpty(responseEntity.getBody())
|
if (responseEntity == null
|
||||||
|| !responseEntity.getStatusCode().is2xxSuccessful()
|
|| StrUtil.isEmpty(responseEntity.getBody())
|
||||||
|| CollUtil.isEmpty(response)) {
|
|| !responseEntity.getStatusCode().is2xxSuccessful()
|
||||||
return;
|
|| CollUtil.isEmpty(response)) {
|
||||||
}
|
return;
|
||||||
// 3.2 解析返回值, 返回值必须符合 CommonResult 规范。
|
}
|
||||||
CommonResult<Map<String, Object>> respResult = JsonUtils.parseObjectQuietly(responseEntity.getBody(),
|
// 3.2 解析返回值, 返回值必须符合 CommonResult 规范。
|
||||||
new TypeReference<>() {});
|
CommonResult<Map<String, Object>> respResult = JsonUtils.parseObjectQuietly(responseEntity.getBody(),
|
||||||
if (respResult == null || !respResult.isSuccess()) {
|
new TypeReference<>() {});
|
||||||
return;
|
if (respResult == null || !respResult.isSuccess()) {
|
||||||
}
|
return;
|
||||||
// 3.3 获取需要更新的流程变量
|
}
|
||||||
Map<String, Object> updateVariables = getNeedUpdatedVariablesFromResponse(respResult.getData(), response);
|
// 3.3 获取需要更新的流程变量
|
||||||
// 3.4 更新流程变量
|
Map<String, Object> updateVariables = getNeedUpdatedVariablesFromResponse(respResult.getData(), response);
|
||||||
if (CollUtil.isNotEmpty(updateVariables)) {
|
// 3.4 更新流程变量
|
||||||
processInstanceService.updateProcessInstanceVariables(processInstance.getId(), updateVariables);
|
if (CollUtil.isNotEmpty(updateVariables)) {
|
||||||
}
|
processInstanceService.updateProcessInstanceVariables(processInstance.getId(), updateVariables);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,9 +122,6 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
@Resource
|
@Resource
|
||||||
private BpmProcessIdRedisDAO processIdRedisDAO;
|
private BpmProcessIdRedisDAO processIdRedisDAO;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RestTemplate restTemplate;
|
|
||||||
|
|
||||||
// ========== Query 查询相关方法 ==========
|
// ========== Query 查询相关方法 ==========
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -914,16 +911,14 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.
|
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.
|
||||||
getProcessDefinitionInfo(instance.getProcessDefinitionId());
|
getProcessDefinitionInfo(instance.getProcessDefinitionId());
|
||||||
if (ObjUtil.isNotNull(processDefinitionInfo) &&
|
if (ObjUtil.isNotNull(processDefinitionInfo) &&
|
||||||
ObjUtil.isNotNull(processDefinitionInfo.getPostProcessNotifySetting())) {
|
ObjUtil.isNotNull(processDefinitionInfo.getProcessAfterTriggerSetting())) {
|
||||||
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getPostProcessNotifySetting();
|
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getProcessAfterTriggerSetting();
|
||||||
|
|
||||||
BpmHttpRequestUtils.executeBpmHttpRequest(instance,
|
BpmHttpRequestUtils.executeBpmHttpRequest(instance,
|
||||||
setting.getUrl(),
|
setting.getUrl(),
|
||||||
setting.getHeader(),
|
setting.getHeader(),
|
||||||
setting.getBody(),
|
setting.getBody(),
|
||||||
true, setting.getResponse(),
|
true, setting.getResponse());
|
||||||
restTemplate,
|
|
||||||
this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -936,18 +931,16 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
// 流程前置通知
|
// 流程前置通知
|
||||||
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.
|
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.
|
||||||
getProcessDefinitionInfo(instance.getProcessDefinitionId());
|
getProcessDefinitionInfo(instance.getProcessDefinitionId());
|
||||||
// TODO @lesan:if return 哈。减少括号。
|
if (ObjUtil.isNull(processDefinitionInfo) ||
|
||||||
if (ObjUtil.isNotNull(processDefinitionInfo) &&
|
ObjUtil.isNull(processDefinitionInfo.getProcessBeforeTriggerSetting())) {
|
||||||
ObjUtil.isNotNull(processDefinitionInfo.getPreProcessNotifySetting())) {
|
return;
|
||||||
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getPreProcessNotifySetting();
|
|
||||||
BpmHttpRequestUtils.executeBpmHttpRequest(instance,
|
|
||||||
setting.getUrl(),
|
|
||||||
setting.getHeader(),
|
|
||||||
setting.getBody(),
|
|
||||||
true, setting.getResponse(),
|
|
||||||
restTemplate,
|
|
||||||
this);
|
|
||||||
}
|
}
|
||||||
|
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getProcessBeforeTriggerSetting();
|
||||||
|
BpmHttpRequestUtils.executeBpmHttpRequest(instance,
|
||||||
|
setting.getUrl(),
|
||||||
|
setting.getHeader(),
|
||||||
|
setting.getBody(),
|
||||||
|
true, setting.getResponse());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,9 +32,6 @@ public class BpmUserTaskListener implements TaskListener {
|
||||||
@Resource
|
@Resource
|
||||||
private BpmProcessInstanceService processInstanceService;
|
private BpmProcessInstanceService processInstanceService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RestTemplate restTemplate;
|
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
private FixedValue listenerConfig;
|
private FixedValue listenerConfig;
|
||||||
|
|
||||||
|
@ -58,9 +55,7 @@ public class BpmUserTaskListener implements TaskListener {
|
||||||
listenerHandler.getPath(),
|
listenerHandler.getPath(),
|
||||||
listenerHandler.getHeader(),
|
listenerHandler.getHeader(),
|
||||||
listenerHandler.getBody(),
|
listenerHandler.getBody(),
|
||||||
false, null,
|
false, null);
|
||||||
restTemplate,
|
|
||||||
processInstanceService);
|
|
||||||
|
|
||||||
// 3. 是否需要后续操作?TODO 芋艿:待定!
|
// 3. 是否需要后续操作?TODO 芋艿:待定!
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,9 +21,6 @@ import org.springframework.web.client.RestTemplate;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger {
|
public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RestTemplate restTemplate;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BpmProcessInstanceService processInstanceService;
|
private BpmProcessInstanceService processInstanceService;
|
||||||
|
|
||||||
|
@ -51,9 +48,7 @@ public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger {
|
||||||
setting.getUrl(),
|
setting.getUrl(),
|
||||||
setting.getHeader(),
|
setting.getHeader(),
|
||||||
setting.getBody(),
|
setting.getBody(),
|
||||||
false, null,
|
false, null);
|
||||||
restTemplate,
|
|
||||||
processInstanceService);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,6 @@ import org.springframework.web.client.RestTemplate;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class BpmSyncHttpRequestTrigger extends BpmAbstractHttpRequestTrigger {
|
public class BpmSyncHttpRequestTrigger extends BpmAbstractHttpRequestTrigger {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RestTemplate restTemplate;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BpmProcessInstanceService processInstanceService;
|
private BpmProcessInstanceService processInstanceService;
|
||||||
|
|
||||||
|
@ -46,9 +43,7 @@ public class BpmSyncHttpRequestTrigger extends BpmAbstractHttpRequestTrigger {
|
||||||
setting.getUrl(),
|
setting.getUrl(),
|
||||||
setting.getHeader(),
|
setting.getHeader(),
|
||||||
setting.getBody(),
|
setting.getBody(),
|
||||||
true, setting.getResponse(),
|
true, setting.getResponse());
|
||||||
restTemplate,
|
|
||||||
processInstanceService);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue