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.FlowableEventDispatcher;
import org.flowable.spring.SpringProcessEngineConfiguration;
......@@ -9,10 +10,13 @@ import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent;
import javax.annotation.Resource;
@Configuration
public class FlowableGlobListenerConfig implements ApplicationListener<ContextRefreshedEvent> {
@Autowired
private SpringProcessEngineConfiguration configuration;
@Resource
@Autowired
private GlobalEndListener endListener;
......
package com.junmp.junmpProcess.listener;
package com.junmp.jyzb.listener;
import cn.hutool.core.collection.CollUtil;
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.TypeReference;
......@@ -41,22 +41,25 @@ import java.util.Map;
// 获取流程实例关联的变量
Map<String, Object> processVariables = getProcessVariables(processInstanceId);
// 获取单据类型
String documentType = (String) processVariables.get("documentType");
UpdateOrderReq updateOrderReq = JSONObject.parseObject(documentType, new TypeReference<UpdateOrderReq>() {
});
// 获取单据类型
String orderReq = (String) processVariables.get("orderReq");
// 根据单据类型执行不同的操作
if ("equipment".equals(documentType)) {
// 执行装备相关操作,防止循环应用,丢入消息队列
if (processVariables!=null)
{
// 获取单据类型
String documentType = (String) processVariables.get("documentType");
UpdateOrderReq updateOrderReq = JSONObject.parseObject(documentType, new TypeReference<UpdateOrderReq>() {
});
// 获取单据类型
String orderReq = (String) processVariables.get("orderReq");
// 根据单据类型执行不同的操作
if ("equipment".equals(documentType)) {
// 执行装备相关操作,防止循环应用,丢入消息队列
// 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.delegate.DelegateExecution;
......
package com.junmp.junmpProcess.listener;
package com.junmp.jyzb.listener;
import org.flowable.engine.RepositoryService;
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.RuntimeService;
......
package com.junmp.junmpProcess.listener;
package com.junmp.jyzb.listener;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.RepositoryService;
......
......@@ -21,6 +21,7 @@ import com.junmp.junmpProcess.service.Bussiness.WorkProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
......@@ -103,6 +104,12 @@ public class BpmnController {
public ApiRes<Boolean> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
return WorkProcessService.start(startProcessInstanceDTO);
}
@ApiOperation("通过流程实例查看审批记录")
@PostMapping("record")
public ApiRes<List<TaskDetailVO>> record(@RequestBody HandleDataDTO handleDataDTO) {
return WorkProcessService.record(handleDataDTO.getProcessInstanceId());
}
@ApiOperation("通过流程定义查看详情")
@PostMapping("instanceInfo")
public ApiRes<HandleDataVO> instanceInfo(@RequestBody HandleDataDTO handleDataDTO) {
......
......@@ -99,7 +99,12 @@ public interface WorkProcessService {
*/
ApiRes<Boolean> start(StartProcessInstanceDTO startProcessInstanceDTO);
/**
* 通过流程定义id启动流程
*
* @return
*/
ApiRes<List<TaskDetailVO>> record(String processInstanceId);
/**
......
......@@ -666,9 +666,9 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
try {
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();
Authentication.setAuthenticatedUserId(StartUser.getUserId().toString());
......@@ -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,
}
runtimeService.setVariables(task.getProcessInstanceId(), map);//设置进入当前流程
Authentication.setAuthenticatedUserId(StartUser.getUserId().toString());
if (StringUtils.isNotBlank(comments)) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "opinion", comments);
......@@ -987,8 +1061,6 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
// if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
// taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
// }
taskService.complete(task.getId());
HistoricTaskInstance historicTask = historyService
.createHistoricTaskInstanceQuery()
......@@ -1374,19 +1446,19 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
if (StringUtils.isNotBlank(HandleDataDTO.getTaskId())) {
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(HandleDataDTO.getTaskId()).singleResult();
currentNode = getChildNode(childNode, historicTaskInstance.getTaskDefinitionKey());
// List<FormOperates> formPerms = currentNode.getProps().getFormPerms();
// if (CollUtil.isNotEmpty(formPerms)) {
// Iterator<FormOperates> iterator = formPerms.iterator();
// while (iterator.hasNext()) {
// FormOperates next = iterator.next();
// if ("H".equals(next.getPerm())) {
// iterator.remove();
// if (jsonObject != null) {
// jsonObject.remove(next.getId());
// }
// }
// }
// }
List<FormOperates> formPerms = currentNode.getProps().getFormPerms();
if (CollUtil.isNotEmpty(formPerms)) {
Iterator<FormOperates> iterator = formPerms.iterator();
while (iterator.hasNext()) {
FormOperates next = iterator.next();
if ("H".equals(next.getPerm())) {
iterator.remove();
if (jsonObject != null) {
jsonObject.remove(next.getId());
}
}
}
}
handleDataVO.setCurrentNode(currentNode);
handleDataVO.setTaskId(HandleDataDTO.getTaskId());
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论