From b619095b82a68fbeed0c499d36124dff169e0ed7 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 04 三月 2025 11:24:46 +0800
Subject: [PATCH] 流程推进全部事项分页bug
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 239 +++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 156 insertions(+), 83 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index f6cfa5b..8056e84 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -19,22 +19,21 @@
import com.ycl.domain.entity.*;
import com.ycl.domain.form.*;
import com.ycl.domain.json.*;
-import com.ycl.domain.vo.CustomerTaskVO;
-import com.ycl.domain.vo.IndexCustomerTaskVO;
-import com.ycl.domain.vo.ProjectProcessDetailVO;
+import com.ycl.domain.vo.*;
import com.ycl.event.event.TaskLogEvent;
+import com.ycl.mapper.ProjectEngineeringMapper;
import com.ycl.mapper.ProjectInfoMapper;
import com.ycl.mapper.ProjectProcessMapper;
import com.ycl.service.*;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.domain.vo.ProjectProcessVO;
import com.ycl.domain.query.ProjectProcessQuery;
import com.ycl.service.common.TaskCommonService;
import com.ycl.system.service.ISysDeptService;
import com.ycl.system.service.ISysDictTypeService;
import com.ycl.system.service.ISysRoleService;
import com.ycl.system.service.ISysUserService;
+import com.ycl.utils.TreeUtil;
import lombok.Synchronized;
import org.apache.commons.lang3.StringUtils;
import org.flowable.bpmn.model.*;
@@ -77,6 +76,7 @@
private final IdentityService identityService;
private final RepositoryService repositoryService;
private final ProjectInfoMapper projectInfoMapper;
+ private final ProjectEngineeringMapper projectEngineeringMapper;
private final HistoryService historyService;
private final ISysUserService sysUserService;
private final ISysRoleService sysRoleService;
@@ -102,8 +102,20 @@
IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
baseMapper.getPage(query, page);
for (ProjectProcessVO vo : page.getRecords()) {
+ List<ProjectEngineeringVO> childList = baseMapper.getEngineeringList(vo.getId());
+ childList.stream().forEach(child -> {
+ if (StringUtils.isNotBlank(child.getProcessDefId())) {
+ ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(child.getProcessDefId()).singleResult();
+ if (Objects.nonNull(processDefinition)) {
+ child.setSuspended(processDefinition.isSuspended());
+ child.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
+ child.setDeployId(processDefinition.getDeploymentId());
+ }
+ }
+ });
+ vo.setChildren(TreeUtil.treeForProjectEng(childList));
vo.setStatus(vo.getProjectStatus());
- if (Objects.nonNull(vo.getProcessDefId())) {
+ if (StringUtils.isNotBlank(vo.getProcessDefId())) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
if (Objects.nonNull(processDefinition)) {
vo.setSuspended(processDefinition.isSuspended());
@@ -121,6 +133,7 @@
// 鏌ヨ璇ラ」鐩槸鍚﹀凡缁忕粦瀹氳繃娴佺▼浜嗭紝妫�鏌ョ粦瀹氱殑娴佺▼鏄惁鍦ㄨ繍琛岋紝鍦ㄨ繍琛屽氨鍒犱簡
ProjectProcess pp = new LambdaQueryChainWrapper<>(baseMapper)
.eq(ProjectProcess::getProjectId, form.getProjectId())
+ .eq(ProjectProcess::getProjectType, form.getProjectType())
.one();
if (Objects.isNull(pp)) {
throw new RuntimeException("璇ラ」鐩湭缁戝畾娴佺▼");
@@ -140,23 +153,36 @@
}
}
}
- ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getProjectOwnerUnit)
- .eq(ProjectInfo::getId, form.getProjectId())
- .one();
- if (Objects.isNull(project)) {
- throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ Long unitId = null;
+ if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
+ .eq(ProjectInfo::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(project)) {
+ throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ }
+ unitId = project.getProjectOwnerUnit();
+ } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
+ .eq(ProjectEngineering::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(projectEngineering)) {
+ throw new RuntimeException("宸ョ▼涓嶅瓨鍦�");
+ }
+ unitId = projectEngineering.getUnit();
}
- SysDept dept = deptService.selectDeptById(project.getProjectOwnerUnit());
+
+ SysDept dept = deptService.selectDeptById(unitId);
if (Objects.isNull(dept)) {
- throw new RuntimeException("椤圭洰涓氫富鍗曚綅涓嶅瓨鍦�");
+ throw new RuntimeException("涓氫富鍗曚綅涓嶅瓨鍦�");
}
String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId());
new LambdaUpdateChainWrapper<>(baseMapper)
.eq(ProjectProcess::getProjectId, form.getProjectId())
+ .eq(ProjectProcess::getProjectType, form.getProjectType())
.set(ProjectProcess::getProcessDefId, form.getProcessDefId())
.set(ProjectProcess::getProcessInsId, processInsId)
- .set(ProjectProcess::getDataLaunch, project.getProjectOwnerUnit())
+ .set(ProjectProcess::getDataLaunch, unitId)
.update();
return Result.ok("娴佺▼鍙樻洿鎴愬姛");
@@ -164,21 +190,36 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public Result startProcess(Long projectId, String processDefId) {
- ProjectInfo project = projectInfoMapper.selectById(projectId);
- if (Objects.isNull(project)) {
- throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ public Result startProcess(ProjectProcessForm form) {
+ Long unitId = null;
+ if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
+ .eq(ProjectInfo::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(project)) {
+ throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ }
+ unitId = project.getProjectOwnerUnit();
+ } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
+ .eq(ProjectEngineering::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(projectEngineering)) {
+ throw new RuntimeException("宸ョ▼涓嶅瓨鍦�");
+ }
+ unitId = projectEngineering.getUnit();
}
- SysDept dept = deptService.selectDeptById(project.getProjectOwnerUnit());
+ SysDept dept = deptService.selectDeptById(unitId);
if (Objects.isNull(dept)) {
- throw new RuntimeException("椤圭洰涓氫富鍗曚綅涓嶅瓨鍦�");
+ throw new RuntimeException("涓氫富鍗曚綅涓嶅瓨鍦�");
}
- String processInsId = this.startPro(projectId, processDefId, dept.getDeptId());
+ String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId());
ProjectProcess entity = new ProjectProcess();
- entity.setProjectId(projectId);
- entity.setProcessDefId(processDefId);
+ entity.setProjectId(form.getProjectId());
+ entity.setProcessDefId(form.getProcessDefId());
entity.setProcessInsId(processInsId);
- entity.setDataLaunch(project.getProjectOwnerUnit());
+ entity.setDataLaunch(unitId);
+ entity.setProjectType(form.getProjectType());
baseMapper.insert(entity);
return Result.ok("娴佺▼鍚姩鎴愬姛");
@@ -191,7 +232,7 @@
* @param processDefId
* @return
*/
- private String startPro(Long projectId, String processDefId, Long createBy) {
+ private String startPro(String projectId, String processDefId, Long createBy) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefId)
@@ -206,6 +247,7 @@
variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
// 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉
variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy);
+ variables.put("a", 1);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables);
return processInstance.getId();
}
@@ -213,39 +255,51 @@
/**
* 鑾峰彇娴佺▼璇︽儏
*
- * @param projectId
+ * @param form
* @return
*/
@Override
- public Result detail(Long projectId, String processDefId) {
- // 椤圭洰淇℃伅
- ProjectInfo projectInfo = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getId, ProjectInfo::getProjectName, ProjectInfo::getProjectCode)
- .eq(ProjectInfo::getId, projectId)
- .one();
+ public Result detail(ProjectProcessForm form) {
- if (Objects.isNull(projectInfo)) {
- return Result.error("璇ラ」鐩笉瀛樺湪");
+ String projectName = "";
+ String projectCode = "";
+ if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ ProjectInfo projectInfo = projectInfoMapper.selectById(form.getProjectId());
+ if (Objects.isNull(projectInfo)) {
+ throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ }
+ projectName = projectInfo.getProjectName();
+ projectCode = projectInfo.getProjectCode();
+ } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ ProjectEngineering projectEngineering = projectEngineeringMapper.selectById(form.getProjectId());
+ if (Objects.isNull(projectEngineering)) {
+ throw new RuntimeException("宸ョ▼涓嶅瓨鍦�");
+ }
+ projectName = projectEngineering.getProjectName();
}
ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper)
- .eq(ProjectProcess::getProjectId, projectId)
- .eq(ProjectProcess::getProcessDefId, processDefId)
+ .eq(ProjectProcess::getProjectId, form.getProjectId())
+ .eq(ProjectProcess::getProcessDefId, form.getProcessDefId())
+ .eq(ProjectProcess::getProjectType, form.getProjectType())
.one();
if (Objects.isNull(projectProcess)) {
- return Result.error("璇ラ」鐩湭璁剧疆娴佺▼");
+ return Result.error("鏈缃祦绋�");
}
ProjectProcessDetailVO detail = new ProjectProcessDetailVO();
- detail.setProjectId(projectId);
- detail.setProjectName(projectInfo.getProjectName());
- detail.setProjectCode(projectInfo.getProjectCode());
+ detail.setProjectType(form.getProjectType().getValue());
+ detail.setProjectId(form.getProjectId());
+
+
+ detail.setProjectName(projectName);
+ detail.setProjectCode(projectCode);
ProjectProcessDetailVO.TaskStatistics taskStatistics = new ProjectProcessDetailVO.TaskStatistics();
// 鐘舵�佺粺璁�
- taskStatistics.setTotalTaskNum(this.getTotalTaskNum(processDefId));
+ taskStatistics.setTotalTaskNum(this.getTotalTaskNum(form.getProcessDefId()));
taskStatistics.setTodoTaskNum(this.getTodoTaskNum(projectProcess.getProcessInsId()));
- taskStatistics.setRemainingTaskNum(this.getRemainingTaskNum(processDefId, projectProcess.getProcessInsId(), taskStatistics.getTotalTaskNum()));
+ taskStatistics.setRemainingTaskNum(this.getRemainingTaskNum(form.getProcessDefId(), projectProcess.getProcessInsId(), taskStatistics.getTotalTaskNum()));
taskStatistics.setTimelyFinishedTaskNum(this.getTimelyTaskNum(projectProcess.getProcessInsId()));
taskStatistics.setOvertimeTaskNum(this.getOvertimeTaskNum(projectProcess.getProcessInsId()));
taskStatistics.setWillOvertimeTaskNum(this.getWillOvertimeTaskNum(projectProcess.getProcessInsId()));
@@ -345,13 +399,28 @@
taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
// 娴佺▼椤圭洰淇℃伅
- ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId());
- if (Objects.nonNull(project)) {
- taskVO.setProjectId(project.getId());
- taskVO.setProjectName(project.getProjectName());
- } else {
- continue;
+ ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper)
+ .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId())
+ .one();
+ String projectId = "";
+ String projectName = "";
+ if (Objects.nonNull(projectProcess)) {
+ if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.PROJECT)) {
+ ProjectInfo project = projectInfoMapper.selectById(projectProcess.getProjectId());
+ if (Objects.nonNull(project)) {
+ projectId = projectProcess.getProjectId();
+ projectName = project.getProjectName();
+ }
+ } else if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.ENGINEERING)) {
+ ProjectEngineering engineering = projectEngineeringMapper.selectById(projectProcess.getProjectId());
+ if (Objects.nonNull(engineering)) {
+ projectId = projectProcess.getProjectId();
+ projectName = engineering.getProjectName();
+ }
+ }
}
+ taskVO.setProjectId(projectId);
+ taskVO.setProjectName(projectName);
// 娴佺▼鍙戣捣浜轰俊鎭�
this.setPromoterInfo(taskVO);
@@ -835,7 +904,7 @@
* @param pageNum
* @param result
*/
- public void getTodoTaskList(Long projectId, String processInsId, String taskName, int pageSize, int pageNum, Result result) {
+ public void getTodoTaskList(String projectId, String processInsId, String taskName, int pageSize, int pageNum, Result result) {
TaskQuery taskQuery = taskService.createTaskQuery()
.active()
.processInstanceId(processInsId)
@@ -872,7 +941,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getAllUserTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getAllUserTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
List<UserTask> allUserTaskElement = this.getAllUserTaskElement(processDefinitionId);
@@ -984,14 +1053,16 @@
vo.setCreateTime(historicTasks.get(0).getStartTime());
// 鏌ヨ瀹為檯澶勭悊浜�
- long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee());
- SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
- if (Objects.nonNull(handlerUser)) {
- handlerIds.add(handlerUserId);
- handlerNames.add(this.getUserShowName(handlerUser));
- if (Objects.nonNull(handlerUser.getDept())) {
- handlerUnitNames.add(handlerUser.getDept().getDeptName());
- handlerUnitIds.add(handlerUser.getDept().getDeptId());
+ if (StringUtils.isNotBlank(historicTasks.get(0).getAssignee())) {
+ long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee());
+ SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
+ if (Objects.nonNull(handlerUser)) {
+ handlerIds.add(handlerUserId);
+ handlerNames.add(this.getUserShowName(handlerUser));
+ if (Objects.nonNull(handlerUser.getDept())) {
+ handlerUnitNames.add(handlerUser.getDept().getDeptName());
+ handlerUnitIds.add(handlerUser.getDept().getDeptId());
+ }
}
}
vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey());
@@ -1022,7 +1093,7 @@
* @param processDefId 娴佺▼瀹氫箟id
* @return
*/
- private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, Long projectId, String processInsId, String processDefId) {
+ private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, String projectId, String processInsId, String processDefId) {
HistoricProcessInstance hisProcess = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInsId).singleResult();
if (Objects.isNull(hisProcess)) {
return new ArrayList<>();
@@ -1059,25 +1130,27 @@
.orderByHistoricTaskInstanceStartTime()
.desc()
.list();
-
- vo.setTaskStatus(TaskStatusEnum.FINISHED);
- // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊�
- vo.setTaskId(hisTaskList.get(0).getId());
- vo.setExecutionId(hisTaskList.get(0).getExecutionId());
- vo.setCreateTime(hisTaskList.get(0).getStartTime());
- // 鏌ヨ瀹為檯澶勭悊浜�
- long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee());
- SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
- if (Objects.nonNull(handlerUser)) {
-
- vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee());
- vo.setActualHandlerUserName(handlerUser.getNickName());
+ // 濡傛灉鏈壘鍒板巻鍙蹭换鍔★紝璇存槑杩欎釜浠诲姟鍙兘澶勪簬鏌愪釜浜掓枼缃戝叧涓嬶紝瀹為檯骞舵湭鎵ц
+ if (CollectionUtils.isEmpty(hisTaskList)) {
+ vo.setTaskStatus(TaskStatusEnum.NOT_START);
+ } else {
+ vo.setTaskStatus(TaskStatusEnum.FINISHED);
+ // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊�
+ vo.setTaskId(hisTaskList.get(0).getId());
+ vo.setExecutionId(hisTaskList.get(0).getExecutionId());
+ vo.setCreateTime(hisTaskList.get(0).getStartTime());
+ // 鏌ヨ瀹為檯澶勭悊浜�
+ long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee());
+ SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
+ if (Objects.nonNull(handlerUser)) {
+ vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee());
+ vo.setActualHandlerUserName(handlerUser.getNickName());
+ }
+ vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey());
+ this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks());
}
- vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey());
- this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks());
-
return vo;
- }).collect(Collectors.toList());
+ }).filter(Objects::nonNull).collect(Collectors.toList());
return vos;
}
@@ -1088,7 +1161,7 @@
* @param taskVO 浠诲姟vo
* @param projectId 椤圭洰id
*/
- private void setRuntimeTaskInfo(Task task, CustomerTaskVO taskVO, Long projectId) {
+ private void setRuntimeTaskInfo(Task task, CustomerTaskVO taskVO, String projectId) {
// 褰撳墠娴佺▼淇℃伅
taskVO.setTaskId(task.getId());
taskVO.setCreateTime(task.getCreateTime());
@@ -1231,7 +1304,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getTimelyTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getTimelyTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1443,7 +1516,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getOvertimeTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getOvertimeTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1556,7 +1629,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getWillOvertimeTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getWillOvertimeTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1631,7 +1704,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getRemainingTask(Long projectId,
+ private List<CustomerTaskVO> getRemainingTask(String projectId,
String processDefinitionId,
String processInsId,
String taskName,
@@ -1759,7 +1832,7 @@
* @param setType 0 璁剧疆璐d换鍗曚綅 1 璁剧疆鍔炵悊鍗曚綅
* @param vo
*/
- private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type, Integer setType) {
+ private void varYzReview(CustomerTaskVO vo, String projectId, String processInsId, HandlerTypeEnum type, Integer setType) {
ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper)
.eq(ProjectProcess::getProjectId, projectId)
.eq(ProjectProcess::getProcessInsId, processInsId)
@@ -1829,7 +1902,7 @@
* @param projectId
* @param processInsId
*/
- private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, Long projectId, String processInsId) {
+ private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, String projectId, String processInsId) {
if (StringUtils.isNotBlank(userTask.getAssignee())) {
SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
if (Objects.nonNull(sysUser)) {
--
Gitblit v1.8.0