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 lombok.Data;
|
||||
import org.activiti.engine.runtime.Execution;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
|
||||
@@ -25,4 +26,6 @@ public class ProcessDTO {
|
||||
|
||||
private ProcessApprovalRecord processApprovalRecord;
|
||||
|
||||
private Execution execution;
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -113,4 +113,6 @@ public interface IProcessHandleService {
|
||||
* @Description: 获取全部子流程实例
|
||||
**/
|
||||
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.modules.activiti.entity.ProcessAll;
|
||||
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.FinishFlagEnum;
|
||||
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.service.IProcessHandleService;
|
||||
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.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -55,6 +56,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService; // 任务审批表
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService; // 流程实例节点关联用户表
|
||||
@Resource
|
||||
private ProcessDraftService processDraftService; // 流程草稿表
|
||||
@@ -226,16 +229,18 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
public ProcessDTO getProcessDTO(String taskId) {
|
||||
ProcessDTO processDTO = new ProcessDTO();
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
||||
processDTO.setProcessApprovalRecord(processApprovalRecord);
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
Execution execution = runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult();
|
||||
processDTO.setTaskId(taskId);
|
||||
processDTO.setProcessInstanceId(processInstanceId);
|
||||
processDTO.setProcessDefinitionId(processDefinitionId);
|
||||
processDTO.setProcessApprovalRecord(processApprovalRecord);
|
||||
processDTO.setTask(task);
|
||||
processDTO.setProcessInstance(processInstance);
|
||||
processDTO.setExecution(execution);
|
||||
return processDTO;
|
||||
}
|
||||
|
||||
@@ -463,4 +468,33 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
.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 static final String STANDARDS_ENGINEER = "standardsEngineer";
|
||||
public static final String MANAGER_LEADER_LIST = "managerLeaderList";
|
||||
public static final String MODULE_OWNER_LIST = "moduleOwnerList";
|
||||
//法规工程师发起
|
||||
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.ApiModelProperty;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -114,10 +113,23 @@ public class ProcessProjectAssessTerm {
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "责任单位负责人id")
|
||||
private String responsibleUnitLeaders;
|
||||
/**
|
||||
* 模块负责人id
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "模块负责人id")
|
||||
private String moduleOwners;
|
||||
|
||||
/**
|
||||
* 不涉及原因
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "不涉及原因")
|
||||
private String notInvolved;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "条款关联用户")
|
||||
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserListList;
|
||||
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserList;
|
||||
|
||||
|
||||
}
|
||||
+87
@@ -1,14 +1,20 @@
|
||||
package com.jero.modules.activiti.process.projectassess.service;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
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.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.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.service.IProcessHandleService;
|
||||
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.projectassess.vo.ProcessProjectAssessVO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -44,6 +52,10 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private ProcessProjectAssessLinkService processProjectAssessLinkService;
|
||||
@Resource
|
||||
private ProcessProjectAssessTermService processProjectAssessTermService;
|
||||
@@ -191,7 +203,82 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user