Commit d9e206c1 by 赵剑炜

审核流调整

parent ff4b1732
package com.junmp.junmpProcess.config; package com.junmp.jyzb.config;
import com.junmp.junmpProcess.listener.GlobalEndListener;
import com.junmp.jyzb.listener.GlobalEndListener;
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher; import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher;
import org.flowable.spring.SpringProcessEngineConfiguration; import org.flowable.spring.SpringProcessEngineConfiguration;
...@@ -9,10 +10,13 @@ import org.springframework.context.ApplicationListener; ...@@ -9,10 +10,13 @@ import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextRefreshedEvent;
import javax.annotation.Resource;
@Configuration @Configuration
public class FlowableGlobListenerConfig implements ApplicationListener<ContextRefreshedEvent> { public class FlowableGlobListenerConfig implements ApplicationListener<ContextRefreshedEvent> {
@Autowired @Autowired
private SpringProcessEngineConfiguration configuration; private SpringProcessEngineConfiguration configuration;
@Resource
@Autowired @Autowired
private GlobalEndListener endListener; private GlobalEndListener endListener;
......
package com.junmp.junmpProcess.listener; package com.junmp.jyzb.listener;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
......
package com.junmp.junmpProcess.listener; package com.junmp.jyzb.listener;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
...@@ -41,22 +41,25 @@ import java.util.Map; ...@@ -41,22 +41,25 @@ import java.util.Map;
// 获取流程实例关联的变量 // 获取流程实例关联的变量
Map<String, Object> processVariables = getProcessVariables(processInstanceId); Map<String, Object> processVariables = getProcessVariables(processInstanceId);
if (processVariables!=null)
// 获取单据类型 {
String documentType = (String) processVariables.get("documentType"); // 获取单据类型
UpdateOrderReq updateOrderReq = JSONObject.parseObject(documentType, new TypeReference<UpdateOrderReq>() { String documentType = (String) processVariables.get("documentType");
}); UpdateOrderReq updateOrderReq = JSONObject.parseObject(documentType, new TypeReference<UpdateOrderReq>() {
// 获取单据类型 });
String orderReq = (String) processVariables.get("orderReq"); // 获取单据类型
// 根据单据类型执行不同的操作 String orderReq = (String) processVariables.get("orderReq");
if ("equipment".equals(documentType)) { // 根据单据类型执行不同的操作
// 执行装备相关操作,防止循环应用,丢入消息队列 if ("equipment".equals(documentType)) {
// 执行装备相关操作,防止循环应用,丢入消息队列
// orderMainService.AddOrder(updateOrderReq); // orderMainService.AddOrder(updateOrderReq);
} else if ("personnel".equals(documentType)) { } else if ("personnel".equals(documentType)) {
// 执行人员相关操作 // 执行人员相关操作
// ... // ...
}
} }
} }
} }
......
package com.junmp.junmpProcess.listener; package com.junmp.jyzb.listener;
import org.flowable.engine.RepositoryService; import org.flowable.engine.RepositoryService;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
......
package com.junmp.junmpProcess.listener; package com.junmp.jyzb.listener;
import org.flowable.engine.RepositoryService; import org.flowable.engine.RepositoryService;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
......
package com.junmp.junmpProcess.listener; package com.junmp.jyzb.listener;
import org.flowable.engine.RepositoryService; import org.flowable.engine.RepositoryService;
import org.flowable.engine.RuntimeService; import org.flowable.engine.RuntimeService;
......
package com.junmp.junmpProcess.listener; package com.junmp.jyzb.listener;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.RepositoryService; import org.flowable.engine.RepositoryService;
......
...@@ -21,6 +21,7 @@ import com.junmp.junmpProcess.service.Bussiness.WorkProcessService; ...@@ -21,6 +21,7 @@ import com.junmp.junmpProcess.service.Bussiness.WorkProcessService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -103,6 +104,12 @@ public class BpmnController { ...@@ -103,6 +104,12 @@ public class BpmnController {
public ApiRes<Boolean> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) { public ApiRes<Boolean> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
return WorkProcessService.start(startProcessInstanceDTO); return WorkProcessService.start(startProcessInstanceDTO);
} }
@ApiOperation("通过流程实例查看审批记录")
@PostMapping("record")
public ApiRes<List<TaskDetailVO>> record(@RequestBody HandleDataDTO handleDataDTO) {
return WorkProcessService.record(handleDataDTO.getProcessInstanceId());
}
@ApiOperation("通过流程定义查看详情") @ApiOperation("通过流程定义查看详情")
@PostMapping("instanceInfo") @PostMapping("instanceInfo")
public ApiRes<HandleDataVO> instanceInfo(@RequestBody HandleDataDTO handleDataDTO) { public ApiRes<HandleDataVO> instanceInfo(@RequestBody HandleDataDTO handleDataDTO) {
......
...@@ -99,7 +99,12 @@ public interface WorkProcessService { ...@@ -99,7 +99,12 @@ public interface WorkProcessService {
*/ */
ApiRes<Boolean> start(StartProcessInstanceDTO startProcessInstanceDTO); ApiRes<Boolean> start(StartProcessInstanceDTO startProcessInstanceDTO);
/**
* 通过流程定义id启动流程
*
* @return
*/
ApiRes<List<TaskDetailVO>> record(String processInstanceId);
/** /**
......
...@@ -666,9 +666,9 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper, ...@@ -666,9 +666,9 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
try { try {
LoginUser StartUser=new LoginUser(); LoginUser StartUser=new LoginUser();
StartUser.setUserId(Long.valueOf(1000)); // StartUser.setUserId(Long.valueOf(1000));
// StartUser= LoginContext.getContext().getLoginUser(); StartUser= LoginContext.getContext().getLoginUser();
// //
JSONObject formData = processInstanceDto.getFormData(); JSONObject formData = processInstanceDto.getFormData();
Authentication.setAuthenticatedUserId(StartUser.getUserId().toString()); Authentication.setAuthenticatedUserId(StartUser.getUserId().toString());
...@@ -724,6 +724,79 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper, ...@@ -724,6 +724,79 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
} }
} }
@Override
public ApiRes<List<TaskDetailVO>> record(String processInstanceId) {
List<Comment> processInstanceComments = taskService.getProcessInstanceComments(processInstanceId);
Map<String, List<Comment>> commentsMap = processInstanceComments.stream()
.collect(Collectors.groupingBy(Comment::getTaskId));
List<Attachment> processInstanceAttachments = taskService.getProcessInstanceAttachments(processInstanceId);
Map<String, List<Attachment>> attachmentMap = processInstanceAttachments.stream()
.collect(Collectors.groupingBy(Attachment::getTaskId));
List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
List<TaskDetailVO> taskDetailVOS= new ArrayList<>();
for (HistoricActivityInstance historicActivityInstance : list) {
if("startEvent".equals(historicActivityInstance.getActivityType())){
TaskDetailVO taskDetailVO= new TaskDetailVO();
taskDetailVO.setTaskId(historicActivityInstance.getTaskId());
taskDetailVO.setActivityId(historicActivityInstance.getActivityId());
taskDetailVO.setName("流程开始");
taskDetailVO.setCreateTime(historicActivityInstance.getStartTime());
taskDetailVO.setEndTime(historicActivityInstance.getEndTime());
taskDetailVOS.add(taskDetailVO);
// taskDetailVO.setSignImage();
// taskDetailVO.setAttachmentVOList();
// taskDetailVO.setOptionVOList();
// taskDetailVO.setCommentVOList();
}
else if("endEvent".equals(historicActivityInstance.getActivityType())){
TaskDetailVO taskDetailVO= new TaskDetailVO();
taskDetailVO.setTaskId(historicActivityInstance.getTaskId());
taskDetailVO.setActivityId(historicActivityInstance.getActivityId());
taskDetailVO.setName("流程结束");
taskDetailVO.setCreateTime(historicActivityInstance.getStartTime());
taskDetailVO.setEndTime(historicActivityInstance.getEndTime());
taskDetailVOS.add(taskDetailVO);
}
else if("userTask".equals(historicActivityInstance.getActivityType())){
List<Comment> comments = commentsMap.get(historicActivityInstance.getTaskId());
if(CollUtil.isNotEmpty(comments)){
for (Comment comment : comments) {
if("opinion".equals(comment.getType())){
TaskDetailVO taskDetailVO= new TaskDetailVO();
taskDetailVO.setTaskId(historicActivityInstance.getTaskId());
taskDetailVO.setActivityId(historicActivityInstance.getActivityId());
taskDetailVO.setName(historicActivityInstance.getActivityName());
taskDetailVO.setCreateTime(historicActivityInstance.getStartTime());
taskDetailVO.setEndTime(historicActivityInstance.getEndTime());
// taskDetailVO.setComment(comment.getFullMessage());
List<Attachment> attachments = attachmentMap.get(historicActivityInstance.getTaskId());
List<AttachmentVO> attachmentVOList = new ArrayList<>();
for (Attachment attachment : attachments) {
AttachmentVO attachmentVO = new AttachmentVO();
attachmentVO.setId(attachment.getId());
attachmentVO.setName(attachment.getName());
attachmentVO.setUrl(attachment.getUrl());
attachmentVOList.add(attachmentVO);
}
for (Comment comment1 : comments) {
if("sign".equals(comment1.getType())){
taskDetailVO.setSignImage(comment1.getFullMessage());
}
}
taskDetailVO.setAttachmentVOList(attachmentVOList);
taskDetailVOS.add(taskDetailVO);
}
}
}
}
}
return ApiRes.success(taskDetailVOS);
}
/** /**
* 查看我发起的流程 * 查看我发起的流程
* *
...@@ -974,6 +1047,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper, ...@@ -974,6 +1047,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
} }
runtimeService.setVariables(task.getProcessInstanceId(), map);//设置进入当前流程 runtimeService.setVariables(task.getProcessInstanceId(), map);//设置进入当前流程
Authentication.setAuthenticatedUserId(StartUser.getUserId().toString()); Authentication.setAuthenticatedUserId(StartUser.getUserId().toString());
if (StringUtils.isNotBlank(comments)) { if (StringUtils.isNotBlank(comments)) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "opinion", comments); taskService.addComment(task.getId(), task.getProcessInstanceId(), "opinion", comments);
...@@ -987,8 +1061,6 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper, ...@@ -987,8 +1061,6 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
// if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) { // if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
// taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo()); // taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
// } // }
taskService.complete(task.getId()); taskService.complete(task.getId());
HistoricTaskInstance historicTask = historyService HistoricTaskInstance historicTask = historyService
.createHistoricTaskInstanceQuery() .createHistoricTaskInstanceQuery()
...@@ -1374,19 +1446,19 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper, ...@@ -1374,19 +1446,19 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
if (StringUtils.isNotBlank(HandleDataDTO.getTaskId())) { if (StringUtils.isNotBlank(HandleDataDTO.getTaskId())) {
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(HandleDataDTO.getTaskId()).singleResult(); HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(HandleDataDTO.getTaskId()).singleResult();
currentNode = getChildNode(childNode, historicTaskInstance.getTaskDefinitionKey()); currentNode = getChildNode(childNode, historicTaskInstance.getTaskDefinitionKey());
// List<FormOperates> formPerms = currentNode.getProps().getFormPerms(); List<FormOperates> formPerms = currentNode.getProps().getFormPerms();
// if (CollUtil.isNotEmpty(formPerms)) { if (CollUtil.isNotEmpty(formPerms)) {
// Iterator<FormOperates> iterator = formPerms.iterator(); Iterator<FormOperates> iterator = formPerms.iterator();
// while (iterator.hasNext()) { while (iterator.hasNext()) {
// FormOperates next = iterator.next(); FormOperates next = iterator.next();
// if ("H".equals(next.getPerm())) { if ("H".equals(next.getPerm())) {
// iterator.remove(); iterator.remove();
// if (jsonObject != null) { if (jsonObject != null) {
// jsonObject.remove(next.getId()); jsonObject.remove(next.getId());
// } }
// } }
// } }
// } }
handleDataVO.setCurrentNode(currentNode); handleDataVO.setCurrentNode(currentNode);
handleDataVO.setTaskId(HandleDataDTO.getTaskId()); handleDataVO.setTaskId(HandleDataDTO.getTaskId());
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论