|
@@ -31,8 +31,8 @@ import org.activiti.engine.history.HistoricTaskInstance;
|
|
import org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior;
|
|
import org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior;
|
|
import org.activiti.engine.repository.DeploymentBuilder;
|
|
import org.activiti.engine.repository.DeploymentBuilder;
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
-import org.activiti.engine.task.IdentityLink;
|
|
|
|
import org.activiti.engine.task.Task;
|
|
import org.activiti.engine.task.Task;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
@@ -177,10 +177,12 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
TFFlowApprove tfFlowApprove = null;
|
|
TFFlowApprove tfFlowApprove = null;
|
|
Task taskTemp = null;
|
|
Task taskTemp = null;
|
|
FlowResult flowResult = null;
|
|
FlowResult flowResult = null;
|
|
|
|
+ TFCustomFlow tfCustomFlow = null;
|
|
if (Objects.nonNull(flowApproveParam.getFlowDeploymentId()) && Objects.isNull(flowApproveParam.getTaskId())) {
|
|
if (Objects.nonNull(flowApproveParam.getFlowDeploymentId()) && Objects.isNull(flowApproveParam.getTaskId())) {
|
|
Optional.ofNullable(flowApproveParam.getCrmNo()).orElseThrow(() -> ExceptionResultEnum.CRM_NO_NO_DATA.exception());
|
|
Optional.ofNullable(flowApproveParam.getCrmNo()).orElseThrow(() -> ExceptionResultEnum.CRM_NO_NO_DATA.exception());
|
|
|
|
|
|
- TFCustomFlow tfCustomFlow = tfCustomFlowService.getOne(new QueryWrapper<TFCustomFlow>().lambda().eq(TFCustomFlow::getFlowDeploymentId, flowApproveParam.getFlowDeploymentId()));
|
|
|
|
|
|
+ tfCustomFlow = tfCustomFlowService.getOne(new QueryWrapper<TFCustomFlow>().lambda().eq(TFCustomFlow::getFlowDeploymentId, flowApproveParam.getFlowDeploymentId()));
|
|
|
|
+ Optional.ofNullable(tfCustomFlow).orElseThrow(() -> ExceptionResultEnum.FLOW_CUSTOM_NO_DATA.exception());
|
|
Optional.ofNullable(tfCustomFlow.getFlowProcessVar()).orElseThrow(() -> ExceptionResultEnum.FLOW_PROCESS_VAR_NO_DATA.exception());
|
|
Optional.ofNullable(tfCustomFlow.getFlowProcessVar()).orElseThrow(() -> ExceptionResultEnum.FLOW_PROCESS_VAR_NO_DATA.exception());
|
|
|
|
|
|
map.put(SystemConstant.DEFAULT_ASSIGNEE_LIST + 1, approveUserIds);
|
|
map.put(SystemConstant.DEFAULT_ASSIGNEE_LIST + 1, approveUserIds);
|
|
@@ -210,6 +212,8 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
Optional.ofNullable(tfCustomFlowEntity).orElseThrow(() -> ExceptionResultEnum.FLOW_ENTITY_NO_DATA.exception());
|
|
Optional.ofNullable(tfCustomFlowEntity).orElseThrow(() -> ExceptionResultEnum.FLOW_ENTITY_NO_DATA.exception());
|
|
flowResult = JSONObject.parseObject(tfCustomFlowEntity.getFlowProcessVar(), FlowResult.class);
|
|
flowResult = JSONObject.parseObject(tfCustomFlowEntity.getFlowProcessVar(), FlowResult.class);
|
|
|
|
|
|
|
|
+ tfCustomFlow = tfCustomFlowService.getById(tfCustomFlowEntity.gettFCustomFlowId());
|
|
|
|
+
|
|
tfFlowApprove = tfFlowApproveService.getOne(new QueryWrapper<TFFlowApprove>().lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(processFlowId)));
|
|
tfFlowApprove = tfFlowApproveService.getOne(new QueryWrapper<TFFlowApprove>().lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(processFlowId)));
|
|
Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
|
|
Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
|
|
taskList.add(taskTemp);
|
|
taskList.add(taskTemp);
|
|
@@ -247,7 +251,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
//流程流水日志
|
|
//流程流水日志
|
|
TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getOrgId(), sysUser.getId(), sysUser.getId(),
|
|
TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getOrgId(), sysUser.getId(), sysUser.getId(),
|
|
currFlowTaskResult.getSetup(), Long.parseLong(processFlowId),
|
|
currFlowTaskResult.getSetup(), Long.parseLong(processFlowId),
|
|
- Long.parseLong(task.getId()), tfCustomFlowEntity.getId(), approveUserIds.toString().replaceAll("\\[", "").replaceAll("\\]", ""));
|
|
|
|
|
|
+ Long.parseLong(task.getId()), tfCustomFlowEntity.getId(), StringUtils.join(approveUserIds, SystemConstant.LIST_JOIN_SPLIT));
|
|
if (flowApproveParam.getApprove() == FlowApprovePassEnum.PASS || flowApproveParam.getApprove() == FlowApprovePassEnum.DRAFT || flowApproveParam.getApprove() == FlowApprovePassEnum.START) {
|
|
if (flowApproveParam.getApprove() == FlowApprovePassEnum.PASS || flowApproveParam.getApprove() == FlowApprovePassEnum.DRAFT || flowApproveParam.getApprove() == FlowApprovePassEnum.START) {
|
|
if (Objects.nonNull(flowApproveParam.getSetup())) {
|
|
if (Objects.nonNull(flowApproveParam.getSetup())) {
|
|
currSetup = flowApproveParam.getSetup();
|
|
currSetup = flowApproveParam.getSetup();
|
|
@@ -299,7 +303,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
flowApproveParam.getApproveRemark());
|
|
flowApproveParam.getApproveRemark());
|
|
}
|
|
}
|
|
map.put(SystemConstant.APPROVE, nextFlowTaskResult.getTaskKey());
|
|
map.put(SystemConstant.APPROVE, nextFlowTaskResult.getTaskKey());
|
|
- map.put(SystemConstant.DEFAULT_ASSIGNEE_LIST + nextFlowTaskResult.getSetup(), approveUserIds);
|
|
|
|
if (Objects.nonNull(formDataFlowTaskResult) && Objects.equals(task.getTaskDefinitionKey(), formDataFlowTaskResult.getTaskKey())) {
|
|
if (Objects.nonNull(formDataFlowTaskResult) && Objects.equals(task.getTaskDefinitionKey(), formDataFlowTaskResult.getTaskKey())) {
|
|
setupMap.put(task.getTaskDefinitionKey(), formDataFlowTaskResult);
|
|
setupMap.put(task.getTaskDefinitionKey(), formDataFlowTaskResult);
|
|
}
|
|
}
|
|
@@ -327,30 +330,18 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ tfFlowLog.setPendApproveId(StringUtils.join(approveIdSet, SystemConstant.LIST_JOIN_SPLIT));
|
|
map.put(SystemConstant.DEFAULT_ASSIGNEE_LIST + nextFlowTaskResult.getSetup(), new ArrayList<>(approveIdSet));
|
|
map.put(SystemConstant.DEFAULT_ASSIGNEE_LIST + nextFlowTaskResult.getSetup(), new ArrayList<>(approveIdSet));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ taskService.setVariable(task.getId(), SystemConstant.FLOW_CUSTOM, tfCustomFlow);
|
|
|
|
+ taskService.setVariable(task.getId(), SystemConstant.FLOW_APPROVE, tfFlowApprove);
|
|
|
|
+ taskService.setVariable(task.getId(), SystemConstant.FLOW_ENTITY, tfCustomFlowEntity);
|
|
|
|
+ taskService.setVariable(task.getId(), SystemConstant.FLOW_APPROVE_LOG, tfFlowLog);
|
|
|
|
+ taskService.setVariable(task.getId(), SystemConstant.FLOW_SYS_USER, sysUser);
|
|
taskService.complete(task.getId(), map);
|
|
taskService.complete(task.getId(), map);
|
|
- if (flowApproveParam.getApprove() == FlowApprovePassEnum.START || flowApproveParam.getApprove() == FlowApprovePassEnum.PASS) {
|
|
|
|
- List<Task> tasks = taskService.createTaskQuery().processInstanceId(processFlowId).list();
|
|
|
|
- if (!CollectionUtils.isEmpty(tasks)) {
|
|
|
|
- Set<String> approveIdSet = new LinkedHashSet<>();
|
|
|
|
- for (Task t : tasks) {
|
|
|
|
- if (Objects.isNull(t.getAssignee())) {
|
|
|
|
- List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(t.getId());
|
|
|
|
- if (!CollectionUtils.isEmpty(identityLinkList)) {
|
|
|
|
- for (IdentityLink i : identityLinkList) {
|
|
|
|
- approveIdSet.add(i.getUserId());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- approveIdSet.add(t.getAssignee());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- tfFlowLog.setPendApproveId(approveIdSet.toString().replaceAll("\\[", "").replaceAll("\\]", ""));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
+ map.put(SystemConstant.FLOW_APPROVE_LOG, tfFlowLog);
|
|
tfFlowLogList.add(tfFlowLog);
|
|
tfFlowLogList.add(tfFlowLog);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -358,7 +349,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
tfFlowApproveService.saveOrUpdate(tfFlowApprove);
|
|
tfFlowApproveService.saveOrUpdate(tfFlowApprove);
|
|
tfFlowLogService.saveBatch(tfFlowLogList);
|
|
tfFlowLogService.saveBatch(tfFlowLogList);
|
|
map.put(SystemConstant.FLOW_APPROVE, tfFlowApprove);
|
|
map.put(SystemConstant.FLOW_APPROVE, tfFlowApprove);
|
|
- map.put(SystemConstant.CUSTOM_FLOW_ENTITY, tfCustomFlowEntity);
|
|
|
|
|
|
+ map.put(SystemConstant.FLOW_ENTITY, tfCustomFlowEntity);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error(SystemConstant.LOG_ERROR, e);
|
|
log.error(SystemConstant.LOG_ERROR, e);
|
|
if (e instanceof ApiException) {
|
|
if (e instanceof ApiException) {
|