From 064dca48da397af000ccfe7b9968f051ded8dcd7 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 10 二月 2025 09:23:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 63 +++++++++++++++++++++++++++----
1 files changed, 54 insertions(+), 9 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 15f8119..b420892 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -1,6 +1,7 @@
package com.ycl.service.impl;
+import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
@@ -15,7 +16,9 @@
import com.ycl.constant.TaskTypeConstant;
import com.ycl.domain.entity.ProjectInfo;
import com.ycl.domain.entity.ProjectProcess;
+import com.ycl.domain.entity.SysForm;
import com.ycl.domain.form.TaskDelegationForm;
+import com.ycl.domain.form.TaskJumpForm;
import com.ycl.domain.json.DelegateData;
import com.ycl.domain.vo.CustomerTaskVO;
import com.ycl.domain.vo.IndexCustomerTaskVO;
@@ -23,6 +26,8 @@
import com.ycl.event.event.TaskLogEvent;
import com.ycl.mapper.ProjectInfoMapper;
import com.ycl.mapper.ProjectProcessMapper;
+import com.ycl.service.IFlowTaskService;
+import com.ycl.service.ISysFormService;
import com.ycl.service.ProjectProcessService;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -79,6 +84,8 @@
private final ISysRoleService sysRoleService;
private final ISysDeptService sysDeptService;
private final TaskCommonService taskCommonService;
+ private final IFlowTaskService flowTaskService;
+ private final ISysFormService formService;
private final ApplicationEventPublisher publisher;
/**
@@ -90,13 +97,14 @@
@Override
public Result page(ProjectProcessQuery query) {
IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
- baseMapper.getPage(page, query);
+ baseMapper.getPage(query, page);
for (ProjectProcessVO vo : page.getRecords()) {
if (Objects.nonNull(vo.getProcessDefId())) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
if (Objects.nonNull(processDefinition)) {
vo.setSuspended(processDefinition.isSuspended());
vo.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
+ vo.setDeployId(processDefinition.getDeploymentId());
}
}
}
@@ -304,6 +312,8 @@
if (Objects.nonNull(project)) {
taskVO.setProjectId(project.getId());
taskVO.setProjectName(project.getProjectName());
+ } else {
+ continue;
}
// 娴佺▼鍙戣捣浜轰俊鎭�
@@ -362,6 +372,9 @@
taskVO.setHandlerUnitId(handlerUnitIds);
taskVO.setHandlerUnitName(handlerUnitNames);
vos.add(taskVO);
+ }
+ if (vos.size() < pageSize) {
+ result.total(vos.size());
}
result.put("taskList", vos);
}
@@ -470,7 +483,7 @@
for (FlowElement flowElement : flowElements) {
if (flowElement instanceof UserTask && flowElement.getId().equals(task.getTaskDefinitionKey())) {
UserTask userTask = (UserTask) flowElement;
- needAuditing = taskCommonService.checkTaskNeedAuditing(userTask.getExtensionElements().get("properties"));
+ needAuditing = taskCommonService.checkHasExeProperty(userTask.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_NEED_AUDITING_TEXT);
break;
}
@@ -560,6 +573,28 @@
publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), task.getId(), ProcessLogEventTypeEnum.DELEGATE, jsonData));
return Result.ok("杞姙鎴愬姛");
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result taskJump(TaskJumpForm form) {
+ Task task = taskService.createTaskQuery().taskId(form.getTaskId()).processInstanceId(form.getProcessInsId()).singleResult();
+ if (Objects.nonNull(task)) {
+ // 娣诲姞璺宠繃鏃ュ織
+ publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), form.getTaskId(), ProcessLogEventTypeEnum.JUMP, null));
+ // 鏌ュ嚭璇ヤ换鍔$粦瀹氱殑琛ㄥ崟
+
+ Map<String, Object> data = new HashMap<>(1);
+ if (StringUtils.isNotBlank(task.getFormKey())) {
+ SysForm sysForm = formService.selectSysFormById(Long.parseLong(task.getFormKey()));
+ if (Objects.nonNull(sysForm)) {
+ data.put(ProcessConstants.TASK_FORM_KEY, JSONObject.parseObject(sysForm.getFormContent()));
+ }
+ }
+ // 瀹屾垚浠诲姟
+ flowTaskService.completeSubmitForm(form.getTaskId(), data);
+ }
+ return Result.ok("鎿嶄綔鎴愬姛");
}
/**
@@ -659,13 +694,18 @@
// 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
if (StringUtils.isNotBlank(userTask.getAssignee())) {
vo.setHandlerType(HandlerTypeEnum.USER);
- SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
- if (Objects.nonNull(sysUser)) {
- handlerIds.add(sysUser.getUserId());
- handlerNames.add(sysUser.getNickName());
- if (Objects.nonNull(sysUser.getDept())) {
- handlerUnitIds.add(sysUser.getDept().getDeptId());
- handlerUnitNames.add(sysUser.getDept().getDeptName());
+ // 澶勭悊鍙橀噺琛ㄨ揪寮�
+ if (userTask.getAssignee().contains(ProcessConstants.DATA_LAUNCH)) {
+ handlerNames.add(userTask.getAssignee());
+ } else {
+ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
+ if (Objects.nonNull(sysUser)) {
+ handlerIds.add(sysUser.getUserId());
+ handlerNames.add(sysUser.getNickName());
+ if (Objects.nonNull(sysUser.getDept())) {
+ handlerUnitIds.add(sysUser.getDept().getDeptId());
+ handlerUnitNames.add(sysUser.getDept().getDeptName());
+ }
}
}
} else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
@@ -928,6 +968,11 @@
// 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
if (StringUtils.isNotBlank(userTask.getAssignee())) {
vo.setHandlerType(HandlerTypeEnum.USER);
+ // 澶勭悊鍙橀噺琛ㄨ揪寮�
+ if (userTask.getAssignee().contains(ProcessConstants.DATA_LAUNCH)) {
+ handlerNames.add(userTask.getAssignee());
+ continue;
+ }
SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
if (Objects.nonNull(sysUser)) {
handlerIds.add(sysUser.getUserId());
--
Gitblit v1.8.0