From 178b4ee9f38a8b38b1cb5321fee25a6038b39df9 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 19 二月 2025 11:05:28 +0800
Subject: [PATCH] 中标单位id设为null

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |   80 +++++++++++++++++++++++++++++----------
 1 files changed, 59 insertions(+), 21 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..72b764c 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;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -149,16 +145,16 @@
         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