update 标准征求意见流程
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
package com.jero.modules.activiti.process.fb.common;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/28 11:41
|
||||
* @Description: 常量
|
||||
*/
|
||||
public class ConsultationCommon {
|
||||
|
||||
public static final String USER_TYPE_MODULE_OWNER = "1"; // 模块负责人
|
||||
|
||||
}
|
||||
+4
@@ -83,4 +83,8 @@ public class ProcessFbConsultationList implements Serializable {
|
||||
@Excel(name = "设计工程师名称", width = 15)
|
||||
@ApiModelProperty(value = "设计工程师名称")
|
||||
private java.lang.String designEngineerName;
|
||||
/**设计工程师id*/
|
||||
@Excel(name = "设计工程师id", width = 15)
|
||||
@ApiModelProperty(value = "设计工程师id")
|
||||
private java.lang.String designEngineerId;
|
||||
}
|
||||
|
||||
+4
@@ -71,6 +71,10 @@ public class TaskListenerService {
|
||||
userLink.setParentExecutionId(parentExecutionId);
|
||||
processFbConsultationUserLinkService.updateById(userLink);
|
||||
break;
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_2: // 模块负责人汇总填写意见(主管级领导驳回后)
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_3: // 法规工程师审批驳回后的子流程中的模块负责人汇总
|
||||
delegateTask.setFormKey(userId); // 绑定主管级领导的id
|
||||
break;
|
||||
default:
|
||||
log.info("{}没有监听任务", taskDefinitionKey);
|
||||
}
|
||||
|
||||
+86
-12
@@ -7,6 +7,7 @@ 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.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationCommon;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationNodeSort;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey;
|
||||
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
||||
@@ -295,41 +296,112 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
public ProcessInfoVO<ProcessFbStandardConsultationVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
|
||||
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
|
||||
ProcessFbStandardConsultationVO processFbStandardConsultationVO = new ProcessFbStandardConsultationVO();
|
||||
processInfoVO.setBusinessInfoDTO(processFbStandardConsultationVO);
|
||||
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessFbStandardConsultation processFbStandardConsultation = getById(businessId);
|
||||
processFbStandardConsultationVO.setProcessFbStandardConsultation(processFbStandardConsultation); // 业务基本信息
|
||||
|
||||
LambdaQueryWrapper<ProcessFbConsultationList> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessFbConsultationList::getBusinessId, businessId);
|
||||
List<ProcessFbConsultationList> consultationLists = processFbConsultationListService.list(queryWrapper);
|
||||
processFbStandardConsultationVO.setProcessFbConsultationLists(consultationLists);
|
||||
if (StringUtils.isBlank(taskId)) return processInfoVO;
|
||||
|
||||
// 人员选择
|
||||
LambdaQueryWrapper<ProcessFbConsultationUserLink> linkQueryWrapper = new LambdaQueryWrapper<>();
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, businessId);
|
||||
// 征求意见列表
|
||||
LambdaQueryWrapper<ProcessFbConsultationList> listQueryWrapper = new LambdaQueryWrapper<>();
|
||||
listQueryWrapper.eq(ProcessFbConsultationList::getBusinessId, businessId);
|
||||
|
||||
String userId = CurrentUserUtil.getId();
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String executionId = task.getExecutionId();
|
||||
Execution execution = runtimeService.createExecutionQuery().executionId(executionId).singleResult();
|
||||
String executionParentId = execution.getParentId();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey(); // 任务定义id
|
||||
List<ProcessFbConsultationUserLink> userLinks;
|
||||
ProcessFbConsultationUserLink userLink;
|
||||
List<String> linkIds;
|
||||
List<ProcessFbConsultationList> consultationLists;
|
||||
switch (taskDefinitionKey) {
|
||||
case ConsultationTaskKey.DEPART_LEADER_START_1:
|
||||
processDepartLeaderStart_1_draft(processInfoVO); // 各部所主管级领导分发
|
||||
case ConsultationTaskKey.DEPART_LEADER_START_1: // 各部所主管级领导分发
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, userId);
|
||||
userLinks = processFbConsultationUserLinkService.list(linkQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(userLinks)) {
|
||||
userLink = userLinks.get(0);
|
||||
String userType = userLink.getUserType();
|
||||
if (ConsultationCommon.USER_TYPE_MODULE_OWNER.equals(userType)) { // 模块负责人
|
||||
List<String> collect = userLinks.stream()
|
||||
.map(ProcessFbConsultationUserLink::getModuleOwnerId)
|
||||
.distinct().collect(Collectors.toList());
|
||||
userLink.setModuleOwnerId(StringUtils.join(collect, ","));
|
||||
} else { // 设计工程师
|
||||
List<String> collect = userLinks.stream()
|
||||
.map(ProcessFbConsultationUserLink::getDesignEngineerId)
|
||||
.distinct().collect(Collectors.toList());
|
||||
userLink.setDesignEngineerId(StringUtils.join(collect, ","));
|
||||
}
|
||||
processFbStandardConsultationVO.setProcessFbConsultationUserLink(userLink);
|
||||
}
|
||||
break;
|
||||
case ConsultationTaskKey.DESIGN_ENGINEER_1: // 设计工程师填写征求意见(分发给模块负责人)
|
||||
case ConsultationTaskKey.DESIGN_ENGINEER_2: // 设计工程师填写征求意见(不分发给模块负责人)
|
||||
designEngineer_draft(processInfoVO);
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getParentExecutionId, executionParentId);
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getDesignEngineerId, userId);
|
||||
userLink = processFbConsultationUserLinkService.getOne(linkQueryWrapper);
|
||||
listQueryWrapper.eq(ProcessFbConsultationList::getDesignEngineerId, userId);
|
||||
listQueryWrapper.eq(ProcessFbConsultationList::getUserLinkId, userLink.getId());
|
||||
consultationLists = processFbConsultationListService.list(listQueryWrapper);
|
||||
processFbStandardConsultationVO.setProcessFbConsultationLists(consultationLists);
|
||||
break;
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_1: // 模块负责人汇总填写意见(可跳过)
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_2: // 模块负责人汇总填写意见(主管级领导驳回后)
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_3: // 法规工程师审批驳回后的子流程中的模块负责人汇总
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getParentExecutionId, executionId);
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getModuleOwnerId, userId);
|
||||
userLinks = processFbConsultationUserLinkService.list(linkQueryWrapper);
|
||||
linkIds = userLinks.stream().map(ProcessFbConsultationUserLink::getId).collect(Collectors.toList());
|
||||
listQueryWrapper.in(ProcessFbConsultationList::getUserLinkId, linkIds);
|
||||
consultationLists = processFbConsultationListService.list(listQueryWrapper);
|
||||
processFbStandardConsultationVO.setProcessFbConsultationLists(consultationLists);
|
||||
break;
|
||||
case ConsultationTaskKey.DEPART_LEADER_COLLECT_3: // 法规工程师审批驳回后的子流程中的各部所主管级领导汇总
|
||||
case ConsultationTaskKey.DEPART_LEADER_COLLECT_2: // 各部所主管级领导汇总(不分发给模块负责人)
|
||||
collect_draft(processInfoVO);
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, userId);
|
||||
userLinks = processFbConsultationUserLinkService.list(linkQueryWrapper);
|
||||
linkIds = userLinks.stream().map(ProcessFbConsultationUserLink::getId).collect(Collectors.toList());
|
||||
listQueryWrapper.in(ProcessFbConsultationList::getUserLinkId, linkIds);
|
||||
consultationLists = processFbConsultationListService.list(listQueryWrapper);
|
||||
processFbStandardConsultationVO.setProcessFbConsultationLists(consultationLists);
|
||||
break;
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_2: // 模块负责人汇总填写意见(主管级领导驳回后)
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_3: // 法规工程师审批驳回后的子流程中的模块负责人汇总
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, task.getFormKey());
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getModuleOwnerId, userId);
|
||||
userLinks = processFbConsultationUserLinkService.list(linkQueryWrapper);
|
||||
linkIds = userLinks.stream().map(ProcessFbConsultationUserLink::getId).collect(Collectors.toList());
|
||||
listQueryWrapper.in(ProcessFbConsultationList::getUserLinkId, linkIds);
|
||||
consultationLists = processFbConsultationListService.list(listQueryWrapper);
|
||||
processFbStandardConsultationVO.setProcessFbConsultationLists(consultationLists);
|
||||
break;
|
||||
case ConsultationTaskKey.ENGINEER_START_END: // 法规工程师审批
|
||||
consultationLists = processFbConsultationListService.list(listQueryWrapper);
|
||||
processFbStandardConsultationVO.setProcessFbConsultationLists(consultationLists);
|
||||
break;
|
||||
case ConsultationTaskKey.MODULE_OWNER_START: // 模块负责人分发
|
||||
moduleOwnerStart_draft(processInfoVO);
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getParentExecutionId, executionId);
|
||||
linkQueryWrapper.eq(ProcessFbConsultationUserLink::getModuleOwnerId, userId);
|
||||
userLinks = processFbConsultationUserLinkService.list(linkQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(userLinks)) {
|
||||
List<String> collect = userLinks.stream()
|
||||
.map(ProcessFbConsultationUserLink::getDesignEngineerId)
|
||||
.distinct().collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(collect)) {
|
||||
userLink = userLinks.get(0);
|
||||
userLink.setDesignEngineerId(StringUtils.join(collect, ","));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
log.info("taskDefinitionKey:{},没有业务数据保存", taskDefinitionKey);
|
||||
}
|
||||
|
||||
processInfoVO.setBusinessInfoDTO(processFbStandardConsultationVO);
|
||||
return processInfoVO;
|
||||
}
|
||||
|
||||
@@ -602,6 +674,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
consultation.setUserLinkId(userLinkId);
|
||||
consultation.setBusinessId(businessId);
|
||||
consultation.setDesignEngineerName(designEngineerName);
|
||||
consultation.setDesignEngineerId(CurrentUserUtil.getId());
|
||||
});
|
||||
processFbConsultationListService.saveBatch(processFbConsultationLists, processFbConsultationLists.size());
|
||||
}
|
||||
@@ -637,6 +710,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
consultation.setUserLinkId(userLinkId);
|
||||
consultation.setBusinessId(businessId);
|
||||
consultation.setDesignEngineerName(designEngineerName);
|
||||
consultation.setDesignEngineerId(CurrentUserUtil.getId());
|
||||
});
|
||||
processFbConsultationListService.saveBatch(processFbConsultationLists, processFbConsultationLists.size());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user