add 各部门主管级领导下发submit
This commit is contained in:
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.fb.dto;
|
|||||||
|
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.activiti.engine.runtime.Execution;
|
||||||
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
|
|
||||||
@@ -25,4 +26,6 @@ public class ProcessDTO {
|
|||||||
|
|
||||||
private ProcessApprovalRecord processApprovalRecord;
|
private ProcessApprovalRecord processApprovalRecord;
|
||||||
|
|
||||||
|
private Execution execution;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -113,4 +113,6 @@ public interface IProcessHandleService {
|
|||||||
* @Description: 获取全部子流程实例
|
* @Description: 获取全部子流程实例
|
||||||
**/
|
**/
|
||||||
List<ProcessInstance> subProcessList(String superProcessInstanceId, String subProcessDefinitionKey);
|
List<ProcessInstance> subProcessList(String superProcessInstanceId, String subProcessDefinitionKey);
|
||||||
|
|
||||||
|
void saveNodeUserLink(String processInstanceId, String nodeId, List<String> userIdList);
|
||||||
}
|
}
|
||||||
|
|||||||
+37
-3
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
|
import com.jero.modules.activiti.entity.ProcessNode;
|
||||||
|
import com.jero.modules.activiti.entity.ProcessNodeLink;
|
||||||
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||||
@@ -13,11 +15,11 @@ import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
|||||||
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
||||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||||
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||||
import com.jero.common.api.vo.ResultCommon;
|
import com.jero.common.api.vo.ResultCommon;
|
||||||
|
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.RepositoryService;
|
import org.activiti.engine.RepositoryService;
|
||||||
@@ -27,7 +29,6 @@ import org.activiti.engine.runtime.Execution;
|
|||||||
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -55,6 +56,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
@Resource
|
@Resource
|
||||||
private ProcessApprovalRecordService processApprovalRecordService; // 任务审批表
|
private ProcessApprovalRecordService processApprovalRecordService; // 任务审批表
|
||||||
@Resource
|
@Resource
|
||||||
|
private ProcessNodeService processNodeService;
|
||||||
|
@Resource
|
||||||
private ProcessNodeLinkService processNodeLinkService; // 流程实例节点关联用户表
|
private ProcessNodeLinkService processNodeLinkService; // 流程实例节点关联用户表
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessDraftService processDraftService; // 流程草稿表
|
private ProcessDraftService processDraftService; // 流程草稿表
|
||||||
@@ -226,16 +229,18 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
public ProcessDTO getProcessDTO(String taskId) {
|
public ProcessDTO getProcessDTO(String taskId) {
|
||||||
ProcessDTO processDTO = new ProcessDTO();
|
ProcessDTO processDTO = new ProcessDTO();
|
||||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
||||||
processDTO.setProcessApprovalRecord(processApprovalRecord);
|
|
||||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||||
String processInstanceId = task.getProcessInstanceId();
|
String processInstanceId = task.getProcessInstanceId();
|
||||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||||
|
Execution execution = runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult();
|
||||||
processDTO.setTaskId(taskId);
|
processDTO.setTaskId(taskId);
|
||||||
processDTO.setProcessInstanceId(processInstanceId);
|
processDTO.setProcessInstanceId(processInstanceId);
|
||||||
processDTO.setProcessDefinitionId(processDefinitionId);
|
processDTO.setProcessDefinitionId(processDefinitionId);
|
||||||
|
processDTO.setProcessApprovalRecord(processApprovalRecord);
|
||||||
processDTO.setTask(task);
|
processDTO.setTask(task);
|
||||||
processDTO.setProcessInstance(processInstance);
|
processDTO.setProcessInstance(processInstance);
|
||||||
|
processDTO.setExecution(execution);
|
||||||
return processDTO;
|
return processDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -463,4 +468,33 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
.list();
|
.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存流程定义节点用户
|
||||||
|
* @param processInstanceId
|
||||||
|
* @param nodeId
|
||||||
|
* @param userIdList
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void saveNodeUserLink(String processInstanceId, String nodeId, List<String> userIdList) {
|
||||||
|
String processDefinitionId = runtimeService.createProcessInstanceQuery()
|
||||||
|
.processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
|
||||||
|
|
||||||
|
LambdaQueryWrapper<ProcessNode> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(ProcessNode::getProcessDefinitionId, processDefinitionId);
|
||||||
|
queryWrapper.eq(ProcessNode::getIsView, 1);
|
||||||
|
queryWrapper.eq(ProcessNode::getXmlNodeId, nodeId);
|
||||||
|
ProcessNode processNode = processNodeService.getOne(queryWrapper, false);
|
||||||
|
|
||||||
|
List<ProcessNodeLink> linkList = new ArrayList<>();
|
||||||
|
userIdList.forEach(userId -> {
|
||||||
|
ProcessNodeLink link = new ProcessNodeLink();
|
||||||
|
link.setProcessDefinitionId(processDefinitionId);
|
||||||
|
link.setProcessNodeId(processNode.getId());
|
||||||
|
link.setProcessInstanceId(processInstanceId);
|
||||||
|
link.setUserId(userId);
|
||||||
|
linkList.add(link);
|
||||||
|
});
|
||||||
|
processNodeLinkService.saveBatch(linkList, linkList.size());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package com.jero.modules.activiti.process.projectassess.common;
|
|||||||
public class ProcessProjectAssessCommon {
|
public class ProcessProjectAssessCommon {
|
||||||
public static final String STANDARDS_ENGINEER = "standardsEngineer";
|
public static final String STANDARDS_ENGINEER = "standardsEngineer";
|
||||||
public static final String MANAGER_LEADER_LIST = "managerLeaderList";
|
public static final String MANAGER_LEADER_LIST = "managerLeaderList";
|
||||||
|
public static final String MODULE_OWNER_LIST = "moduleOwnerList";
|
||||||
//法规工程师发起
|
//法规工程师发起
|
||||||
public static final String FGGCSFQ = "fggcsfq";
|
public static final String FGGCSFQ = "fggcsfq";
|
||||||
//各部门主管级领导下发
|
//各部门主管级领导下发
|
||||||
|
|||||||
+14
-2
@@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -114,10 +113,23 @@ public class ProcessProjectAssessTerm {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "责任单位负责人id")
|
@ApiModelProperty(value = "责任单位负责人id")
|
||||||
private String responsibleUnitLeaders;
|
private String responsibleUnitLeaders;
|
||||||
|
/**
|
||||||
|
* 模块负责人id
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "模块负责人id")
|
||||||
|
private String moduleOwners;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不涉及原因
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "不涉及原因")
|
||||||
|
private String notInvolved;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "条款关联用户")
|
@ApiModelProperty(value = "条款关联用户")
|
||||||
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserListList;
|
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserList;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+87
@@ -1,14 +1,20 @@
|
|||||||
package com.jero.modules.activiti.process.projectassess.service;
|
package com.jero.modules.activiti.process.projectassess.service;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jero.common.api.vo.ResultCommon;
|
import com.jero.common.api.vo.ResultCommon;
|
||||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.system.api.ISysBaseAPI;
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||||
|
import com.jero.modules.activiti.process.fb.common.ConsultationNodeSort;
|
||||||
|
import com.jero.modules.activiti.process.fb.common.FbCommon;
|
||||||
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
||||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||||
|
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
||||||
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
||||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||||
import com.jero.modules.activiti.process.projectassess.common.ProcessProjectAssessCommon;
|
import com.jero.modules.activiti.process.projectassess.common.ProcessProjectAssessCommon;
|
||||||
@@ -18,7 +24,9 @@ import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAsse
|
|||||||
|
|
||||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||||
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
||||||
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
|
import org.activiti.engine.TaskService;
|
||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -44,6 +52,10 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
@Resource
|
@Resource
|
||||||
private IProcessHandleService processHandleService;
|
private IProcessHandleService processHandleService;
|
||||||
@Resource
|
@Resource
|
||||||
|
private ProcessAllService processAllService;
|
||||||
|
@Resource
|
||||||
|
private TaskService taskService;
|
||||||
|
@Resource
|
||||||
private ProcessProjectAssessLinkService processProjectAssessLinkService;
|
private ProcessProjectAssessLinkService processProjectAssessLinkService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessProjectAssessTermService processProjectAssessTermService;
|
private ProcessProjectAssessTermService processProjectAssessTermService;
|
||||||
@@ -191,7 +203,82 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void submit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
public void submit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
||||||
|
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||||
|
String taskId = basicTaskInfoDTO.getTaskId();
|
||||||
|
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||||
|
String processInstanceId = processDTO.getProcessInstanceId();
|
||||||
|
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
||||||
|
processInfoVO.setBusinessId(processAll.getProjectId());
|
||||||
|
Task task = processDTO.getTask();
|
||||||
|
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||||
|
switch (taskDefinitionKey) {
|
||||||
|
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||||
|
gbmzgjldxfSubmit(processInfoVO,processDTO);
|
||||||
|
break;
|
||||||
|
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||||
|
break;
|
||||||
|
case ProcessProjectAssessCommon.MKFZRFF:
|
||||||
|
break;
|
||||||
|
case ProcessProjectAssessCommon.SJGCSPG:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gbmzgjldxfSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||||
|
String businessId = processInfoVO.getBusinessId();
|
||||||
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
|
String originUserId = processApprovalRecord.getOriginUserId();
|
||||||
|
// 删除原先存储的关联
|
||||||
|
LambdaQueryWrapper<ProcessProjectAssessTermUser> removeWrapper = new LambdaQueryWrapper<>();
|
||||||
|
removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||||
|
removeWrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader, originUserId);
|
||||||
|
processProjectAssessTermUserService.remove(removeWrapper);
|
||||||
|
|
||||||
|
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
|
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||||
|
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||||
|
List<String> moduleOwnerIds = new ArrayList<>();
|
||||||
|
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||||
|
String termId = processProjectAssessTerm.getId();
|
||||||
|
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||||
|
String notInvolved = processProjectAssessTerm.getNotInvolved();
|
||||||
|
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(notInvolved)) {
|
||||||
|
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
|
||||||
|
newTermUser.setAssessmentId(businessId);
|
||||||
|
newTermUser.setTremId(termId);
|
||||||
|
newTermUser.setResponsibleUnitLeader(originUserId);
|
||||||
|
//newTermUser.setParentExecutionId();
|
||||||
|
newTermUser.setNotInvolved(notInvolved);
|
||||||
|
allTermUserList.add(newTermUser);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String moduleOwners = processProjectAssessTerm.getModuleOwners();
|
||||||
|
List<String> moduleOwnerIdList = Arrays.asList(moduleOwners.split(","));
|
||||||
|
for (String moduleOwnerId : moduleOwnerIdList) {
|
||||||
|
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
|
||||||
|
newTermUser.setAssessmentId(businessId);
|
||||||
|
newTermUser.setTremId(termId);
|
||||||
|
newTermUser.setResponsibleUnitLeader(originUserId);
|
||||||
|
//newTermUser.setParentExecutionId();
|
||||||
|
newTermUser.setModuleOwner(moduleOwnerId);
|
||||||
|
moduleOwnerIds.add(moduleOwnerId);
|
||||||
|
allTermUserList.add(newTermUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||||
|
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
||||||
|
// 完成任务
|
||||||
|
String taskId = processDTO.getTaskId();
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
|
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
||||||
|
taskService.complete(taskId,variables);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveToDraft(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
public void saveToDraft(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
||||||
|
|||||||
Reference in New Issue
Block a user