From 9f09083247ea96d01fd522aff30a2d0735d790bc Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期二, 12 三月 2024 21:33:39 +0800
Subject: [PATCH] fix 修复选择一人时还需要认领问题

---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java |   75 +++++++++++++++++--------------------
 1 files changed, 35 insertions(+), 40 deletions(-)

diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
index fda10d3..a06fb34 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
@@ -12,6 +12,7 @@
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.StreamUtils;
 import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.workflow.common.constant.FlowConstant;
@@ -20,14 +21,11 @@
 import org.dromara.workflow.domain.vo.ProcessDefinitionVo;
 import org.dromara.workflow.service.IActProcessDefinitionService;
 import org.dromara.workflow.service.IWfCategoryService;
-import org.flowable.engine.HistoryService;
+import org.dromara.workflow.utils.QueryUtils;
 import org.flowable.engine.ProcessMigrationService;
 import org.flowable.engine.RepositoryService;
 import org.flowable.engine.impl.bpmn.deployer.ResourceNameUtil;
-import org.flowable.engine.repository.Deployment;
-import org.flowable.engine.repository.Model;
-import org.flowable.engine.repository.ProcessDefinition;
-import org.flowable.engine.repository.ProcessDefinitionQuery;
+import org.flowable.engine.repository.*;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -50,40 +48,35 @@
 public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionService {
 
     private final RepositoryService repositoryService;
-
-    private final HistoryService historyService;
-
     private final ProcessMigrationService processMigrationService;
-
     private final IWfCategoryService wfCategoryService;
 
     /**
      * 鍒嗛〉鏌ヨ
      *
-     * @param processDefinitionBo 鍙傛暟
+     * @param bo 鍙傛暟
      * @return 杩斿洖鍒嗛〉鍒楄〃
      */
     @Override
-    public TableDataInfo<ProcessDefinitionVo> page(ProcessDefinitionBo processDefinitionBo) {
-        ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
-        query.processDefinitionTenantId(TenantHelper.getTenantId());
-        if (StringUtils.isNotEmpty(processDefinitionBo.getKey())) {
-            query.processDefinitionKey(processDefinitionBo.getKey());
+    public TableDataInfo<ProcessDefinitionVo> page(ProcessDefinitionBo bo, PageQuery pageQuery) {
+        ProcessDefinitionQuery query = QueryUtils.definitionQuery();
+        if (StringUtils.isNotEmpty(bo.getKey())) {
+            query.processDefinitionKey(bo.getKey());
         }
-        if (StringUtils.isNotEmpty(processDefinitionBo.getCategoryCode())) {
-            query.processDefinitionCategory(processDefinitionBo.getCategoryCode());
+        if (StringUtils.isNotEmpty(bo.getCategoryCode())) {
+            query.processDefinitionCategory(bo.getCategoryCode());
         }
-        if (StringUtils.isNotEmpty(processDefinitionBo.getName())) {
-            query.processDefinitionNameLike("%" + processDefinitionBo.getName() + "%");
+        if (StringUtils.isNotEmpty(bo.getName())) {
+            query.processDefinitionNameLike("%" + bo.getName() + "%");
         }
         query.orderByDeploymentId().desc();
         // 鍒嗛〉鏌ヨ
         List<ProcessDefinitionVo> processDefinitionVoList = new ArrayList<>();
-        List<ProcessDefinition> definitionList = query.latestVersion().listPage(processDefinitionBo.getPageNum(), processDefinitionBo.getPageSize());
+        List<ProcessDefinition> definitionList = query.latestVersion().listPage(pageQuery.getFirstNum(), pageQuery.getPageSize());
         List<Deployment> deploymentList = null;
         if (CollUtil.isNotEmpty(definitionList)) {
             List<String> deploymentIds = StreamUtils.toList(definitionList, ProcessDefinition::getDeploymentId);
-            deploymentList = repositoryService.createDeploymentQuery().deploymentIds(deploymentIds).list();
+            deploymentList = QueryUtils.deploymentQuery(deploymentIds).list();
         }
         for (ProcessDefinition processDefinition : definitionList) {
             ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
@@ -107,15 +100,14 @@
      * @param key 娴佺▼瀹氫箟key
      */
     @Override
-    public List<ProcessDefinitionVo> getProcessDefinitionListByKey(String key) {
+    public List<ProcessDefinitionVo> getListByKey(String key) {
         List<ProcessDefinitionVo> processDefinitionVoList = new ArrayList<>();
-        ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
-        List<ProcessDefinition> definitionList = query.processDefinitionTenantId(TenantHelper.getTenantId()).processDefinitionKey(key).list();
+        ProcessDefinitionQuery query = QueryUtils.definitionQuery();
+        List<ProcessDefinition> definitionList = query.processDefinitionKey(key).list();
         List<Deployment> deploymentList = null;
         if (CollUtil.isNotEmpty(definitionList)) {
             List<String> deploymentIds = definitionList.stream().map(ProcessDefinition::getDeploymentId).collect(Collectors.toList());
-            deploymentList = repositoryService.createDeploymentQuery()
-                .deploymentIds(deploymentIds).list();
+            deploymentList = QueryUtils.deploymentQuery(deploymentIds).list();
         }
         for (ProcessDefinition processDefinition : definitionList) {
             ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
@@ -137,7 +129,7 @@
      */
     @SneakyThrows
     @Override
-    public String processDefinitionImage(String processDefinitionId) {
+    public String definitionImage(String processDefinitionId) {
         InputStream inputStream = repositoryService.getProcessDiagram(processDefinitionId);
         return Base64.encode(IOUtils.toByteArray(inputStream));
     }
@@ -148,7 +140,7 @@
      * @param processDefinitionId 娴佺▼瀹氫箟id
      */
     @Override
-    public String processDefinitionXml(String processDefinitionId) {
+    public String definitionXml(String processDefinitionId) {
         StringBuilder xml = new StringBuilder();
         ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processDefinitionId);
         InputStream inputStream;
@@ -170,7 +162,7 @@
     @Override
     public boolean deleteDeployment(String deploymentId, String processDefinitionId) {
         try {
-            List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery()
+            List<HistoricTaskInstance> taskInstanceList = QueryUtils.hisTaskInstanceQuery()
                 .processDefinitionId(processDefinitionId).list();
             if (CollectionUtil.isNotEmpty(taskInstanceList)) {
                 throw new ServiceException("褰撳墠娴佺▼瀹氫箟宸茶浣跨敤涓嶅彲鍒犻櫎锛�");
@@ -190,10 +182,10 @@
      * @param processDefinitionId 娴佺▼瀹氫箟id
      */
     @Override
-    public boolean updateProcessDefState(String processDefinitionId) {
+    public boolean updateDefinitionState(String processDefinitionId) {
         try {
-            ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
-                .processDefinitionId(processDefinitionId).processDefinitionTenantId(TenantHelper.getTenantId()).singleResult();
+            ProcessDefinition processDefinition = QueryUtils.definitionQuery()
+                .processDefinitionId(processDefinitionId).singleResult();
             //灏嗗綋鍓嶄负鎸傝捣鐘舵�佹洿鏂颁负婵�娲荤姸鎬�
             //鍙傛暟璇存槑锛氬弬鏁�1锛氭祦绋嬪畾涔塱d,鍙傛暟2锛氭槸鍚︽縺娲伙紙true鏄惁绾ц仈瀵瑰簲娴佺▼瀹炰緥锛屾縺娲讳簡鍒欏搴旀祦绋嬪疄渚嬮兘鍙互瀹℃壒锛夛紝
             //鍙傛暟3锛氫粈涔堟椂鍊欐縺娲伙紝濡傛灉涓簄ull鍒欑珛鍗虫縺娲伙紝濡傛灉涓哄叿浣撴椂闂村垯鍒拌揪姝ゆ椂闂村悗婵�娲�
@@ -217,7 +209,7 @@
      */
 
     @Override
-    public boolean migrationProcessDefinition(String currentProcessDefinitionId, String fromProcessDefinitionId) {
+    public boolean migrationDefinition(String currentProcessDefinitionId, String fromProcessDefinitionId) {
         try {
             // 杩佺Щ楠岃瘉
             boolean migrationValid = processMigrationService.createProcessInstanceMigrationBuilder()
@@ -244,10 +236,11 @@
      */
     @Override
     public boolean convertToModel(String processDefinitionId) {
-        ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
+        ProcessDefinition pd = QueryUtils.definitionQuery()
             .processDefinitionId(processDefinitionId).singleResult();
         InputStream inputStream = repositoryService.getResourceAsStream(pd.getDeploymentId(), pd.getResourceName());
-        Model model = repositoryService.createModelQuery().modelKey(pd.getKey()).modelTenantId(TenantHelper.getTenantId()).singleResult();
+        ModelQuery query = QueryUtils.modelQuery();
+        Model model = query.modelKey(pd.getKey()).singleResult();
         try {
             if (ObjectUtil.isNotNull(model)) {
                 repositoryService.addModelEditorSource(model.getId(), IoUtil.readBytes(inputStream));
@@ -295,9 +288,10 @@
             InputStream inputStream = file.getInputStream();
             Deployment deployment;
             if (FlowConstant.ZIP.equals(suffix)) {
-                deployment = repositoryService.createDeployment()
+                DeploymentBuilder builder = repositoryService.createDeployment();
+                deployment = builder.addZipInputStream(new ZipInputStream(inputStream))
                     .tenantId(TenantHelper.getTenantId())
-                    .addZipInputStream(new ZipInputStream(inputStream)).name(processName).key(processKey).category(categoryCode).deploy();
+                    .name(processName).key(processKey).category(categoryCode).deploy();
             } else {
                 String[] list = ResourceNameUtil.BPMN_RESOURCE_SUFFIXES;
                 boolean flag = false;
@@ -308,15 +302,16 @@
                     }
                 }
                 if (flag) {
-                    deployment = repositoryService.createDeployment()
+                    DeploymentBuilder builder = repositoryService.createDeployment();
+                    deployment = builder.addInputStream(filename, inputStream)
                         .tenantId(TenantHelper.getTenantId())
-                        .addInputStream(filename, inputStream).name(processName).key(processKey).category(categoryCode).deploy();
+                        .name(processName).key(processKey).category(categoryCode).deploy();
                 } else {
                     throw new ServiceException("鏂囦欢绫诲瀷涓婁紶閿欒锛�");
                 }
             }
             // 鏇存柊鍒嗙被
-            ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
+            ProcessDefinition definition = QueryUtils.definitionQuery().deploymentId(deployment.getId()).singleResult();
             repositoryService.setProcessDefinitionCategory(definition.getId(), categoryCode);
 
             return true;

--
Gitblit v1.9.3