From 15e0cd26d651510fde1aea51cd536b7ea2f377e2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 19 二月 2025 11:57:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 82 ++++++++++++++++++++++++++++++-----------
1 files changed, 60 insertions(+), 22 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 6ac5ced..bc3f826 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -1,7 +1,6 @@
package com.ycl.service.impl;
-import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -11,20 +10,15 @@
import com.ycl.common.constant.ProcessConstants;
import com.ycl.common.constant.ProcessOverTimeConstants;
import com.ycl.common.core.domain.entity.SysDept;
+import com.ycl.common.core.domain.entity.SysDictData;
import com.ycl.common.core.domain.entity.SysRole;
import com.ycl.common.core.domain.entity.SysUser;
-import com.ycl.common.enums.business.HandlerTypeEnum;
-import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
-import com.ycl.common.enums.business.SuperviseTypeEnum;
-import com.ycl.common.enums.business.TaskStatusEnum;
+import com.ycl.common.enums.business.*;
import com.ycl.common.utils.SecurityUtils;
import com.ycl.constant.TaskTypeConstant;
import com.ycl.domain.entity.*;
import com.ycl.domain.form.*;
-import com.ycl.domain.json.DelegateData;
-import com.ycl.domain.json.HangupData;
-import com.ycl.domain.json.JumpData;
-import com.ycl.domain.json.SuperviseData;
+import com.ycl.domain.json.*;
import com.ycl.domain.vo.CustomerTaskVO;
import com.ycl.domain.vo.IndexCustomerTaskVO;
import com.ycl.domain.vo.ProjectProcessDetailVO;
@@ -38,6 +32,7 @@
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 lombok.Synchronized;
@@ -93,6 +88,7 @@
private final ApplicationEventPublisher publisher;
private final ISysDeptService deptService;
private final ProcessLogService processLogService;
+ private final ISysDictTypeService dictTypeService;
/**
* 鍒嗛〉鏌ヨ
@@ -143,22 +139,22 @@
}
}
ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getCreateBy)
+ .select(ProjectInfo::getProjectOwnerUnit)
.eq(ProjectInfo::getId, form.getProjectId())
.one();
if (Objects.isNull(project)) {
throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
}
- SysUser user = sysUserService.selectUserById(project.getCreateBy());
- if (Objects.isNull(user)) {
+ SysDept dept = deptService.selectDeptById(project.getProjectOwnerUnit());
+ if (Objects.isNull(dept)) {
throw new RuntimeException("椤圭洰涓氫富鍗曚綅涓嶅瓨鍦�");
}
- String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), user.getDeptId());
+ String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId());
new LambdaUpdateChainWrapper<>(baseMapper)
.eq(ProjectProcess::getProjectId, form.getProjectId())
.set(ProjectProcess::getProcessDefId, form.getProcessDefId())
.set(ProjectProcess::getProcessInsId, processInsId)
- .set(ProjectProcess::getDataLaunch, project.getCreateBy())
+ .set(ProjectProcess::getDataLaunch, project.getProjectOwnerUnit())
.update();
return Result.ok("娴佺▼鍙樻洿鎴愬姛");
@@ -167,23 +163,20 @@
@Override
@Transactional(rollbackFor = Exception.class)
public Result startProcess(Long projectId, String processDefId) {
- ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getCreateBy)
- .eq(ProjectInfo::getId, projectId)
- .one();
+ ProjectInfo project = projectInfoMapper.selectById(projectId);
if (Objects.isNull(project)) {
throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
}
- SysUser user = sysUserService.selectUserById(project.getCreateBy());
- if (Objects.isNull(user)) {
+ SysDept dept = deptService.selectDeptById(project.getProjectOwnerUnit());
+ if (Objects.isNull(dept)) {
throw new RuntimeException("椤圭洰涓氫富鍗曚綅涓嶅瓨鍦�");
}
- String processInsId = this.startPro(projectId, processDefId, user.getDeptId());
+ String processInsId = this.startPro(projectId, processDefId, dept.getDeptId());
ProjectProcess entity = new ProjectProcess();
entity.setProjectId(projectId);
entity.setProcessDefId(processDefId);
entity.setProcessInsId(processInsId);
- entity.setDataLaunch(project.getCreateBy());
+ entity.setDataLaunch(project.getProjectOwnerUnit());
baseMapper.insert(entity);
return Result.ok("娴佺▼鍚姩鎴愬姛");
@@ -731,6 +724,51 @@
return Result.ok("鎿嶄綔鎴愬姛");
}
+ @Override
+ public Result taskTeamwork(TaskTeamWorkForm form) {
+ Task task = taskService.createTaskQuery().taskId(form.getTaskId()).singleResult();
+ if (Objects.isNull(task)) {
+ return Result.error("浠诲姟涓嶅瓨鍦�");
+ }
+ ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper)
+ .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId())
+ .eq(ProjectProcess::getProcessDefId, task.getProcessDefinitionId())
+ .one();
+ if (Objects.isNull(projectProcess)) {
+ return Result.error("椤圭洰娴佺▼鏈粦瀹�");
+ }
+ // 1. 淇濆瓨鍙戣捣浜哄~鍐欑殑琛ㄥ崟鏁版嵁锛屼絾涓嶇洿鎺ュ畬鎴愯浠诲姟銆傛彁浜ゅ悗浠诲姟澶勭悊浜哄繀椤荤瓑鍒板崗鍚屼汉澶勭悊瀹屼箣鍚庢墠鑳藉畬鎴愪换鍔�
+ Map<String, Object> processVariables = new HashMap<>();
+ //鏌ュ嚭瀛楀吀涓渶瑕佹敞鍏ョ殑瀛楁淇℃伅
+ List<String> dictList = dictTypeService.selectDictDataByType("flow_variables").stream().map(SysDictData::getDictValue).collect(Collectors.toList());
+ Map<String, Object> newV = new HashMap<>(2);
+ if (!org.springframework.util.CollectionUtils.isEmpty(form.getVariables())) {
+ for (String key : form.getVariables().keySet()) {
+ newV.put(task.getTaskDefinitionKey() + "&" + key, form.getVariables().get(key));
+ //瀛楀吀閲屾湁灏辨斁鍏ユ祦绋嬪彉閲忎腑
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(dictList) && dictList.contains(key)) {
+ processVariables.put(key,form.getVariables().get(key));
+ }
+ }
+ }
+ if( !processVariables.isEmpty() ) {
+ taskService.setVariables(form.getTaskId(), processVariables);
+ }
+
+ // 2. 淇濆瓨鏃ュ織
+ publisher.publishEvent(new TaskLogEvent(this,
+ null,
+ SecurityUtils.getUserId(),
+ form.getProjectId(),
+ form.getProcessInsId(),
+ form.getTaskId(),
+ task.getName(),
+ ProcessLogEventTypeEnum.TEAM_WORK,
+ new TeamWorkData(form.getHandlerType(), form.getHandlerIds(), TeamWorkStatusEnum.NOT_FINISHED)
+ ));
+ return Result.ok("鎿嶄綔鎴愬姛");
+ }
+
/**
* 鏌ヨ寰呭姙浠诲姟
*
--
Gitblit v1.8.0