From 731bcc7e93921286356b0cd594373f85f6f3eb00 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期六, 09 三月 2024 15:37:23 +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