From 9cb54ea8879b173b750aa3568a58e0f40c79002e Mon Sep 17 00:00:00 2001 From: songgaoshuai <1742057357@qq.com> Date: Thu, 14 Sep 2023 16:16:06 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=8D=87=E7=BA=A7flowable=E5=88=B07.0?= =?UTF-8?q?.0.M2=EF=BC=8C=E8=B0=83=E6=95=B4=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=A0=A1=E9=AA=8C=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../common/enums/BusinessStatusEnum.java | 29 ++++++++------ .../impl/ActProcessDefinitionServiceImpl.java | 2 +- .../impl/ActProcessInstanceServiceImpl.java | 2 +- .../dromara/workflow/utils/WorkflowUtils.java | 38 +++++++++---------- 5 files changed, 38 insertions(+), 35 deletions(-) diff --git a/pom.xml b/pom.xml index 21077fdbe..9c50c62cb 100644 --- a/pom.xml +++ b/pom.xml @@ -59,7 +59,7 @@ 1.3.0 - 7.0.0.M1 + 7.0.0.M2 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java index fbb32ccef..86be522a4 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java @@ -1,9 +1,10 @@ package org.dromara.workflow.common.enums; +import cn.hutool.core.util.StrUtil; import lombok.AllArgsConstructor; import lombok.Getter; -import org.apache.commons.lang3.StringUtils; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StringUtils; /** * 业务状态枚举 @@ -59,7 +60,7 @@ public enum BusinessStatusEnum { */ public static String getEumByStatus(String status) { if (StringUtils.isBlank(status)) { - return null; + return StrUtil.EMPTY; } for (BusinessStatusEnum statusEnum : BusinessStatusEnum.values()) { @@ -67,7 +68,7 @@ public enum BusinessStatusEnum { return statusEnum.getDesc(); } } - return null; + return StrUtil.EMPTY; } /** @@ -76,14 +77,16 @@ public enum BusinessStatusEnum { * @param status 状态 */ public static void checkStartStatus(String status) { - if (status.equals(WAITING.getStatus())) { + if (WAITING.getStatus().equals(status)) { throw new ServiceException("该单据已提交过申请,正在审批中!"); - } else if (status.equals(FINISH.getStatus())) { + } else if (FINISH.getStatus().equals(status)) { throw new ServiceException("该单据已完成申请!"); - } else if (status.equals(INVALID.getStatus())) { + } else if (INVALID.getStatus().equals(status)) { throw new ServiceException("该单据已作废!"); - } else if (status.equals(TERMINATION.getStatus())) { + } else if (TERMINATION.getStatus().equals(status)) { throw new ServiceException("该单据已终止!"); + } else if (StringUtils.isBlank(status)) { + throw new ServiceException("流程状态为空!"); } } @@ -93,16 +96,18 @@ public enum BusinessStatusEnum { * @param status 状态 */ public static void checkStatus(String status) { - if (status.equals(FINISH.getStatus())) { + if (FINISH.getStatus().equals(status)) { throw new ServiceException("该单据已完成申请!"); - } else if (status.equals(INVALID.getStatus())) { + } else if (INVALID.getStatus().equals(status)) { throw new ServiceException("该单据已作废!"); - } else if (status.equals(CANCEL.getStatus())) { + } else if (CANCEL.getStatus().equals(status)) { throw new ServiceException("该单据已撤销!"); - } else if (status.equals(BACK.getStatus())) { + } else if (BACK.getStatus().equals(status)) { throw new ServiceException("该单据已退回!"); - } else if (status.equals(TERMINATION.getStatus())) { + } else if (TERMINATION.getStatus().equals(status)) { throw new ServiceException("该单据已终止!"); + } else if (StringUtils.isBlank(status)) { + throw new ServiceException("流程状态为空!"); } } } 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 132cce17d..34f65f5d3 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 @@ -205,7 +205,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer return true; } catch (Exception e) { e.printStackTrace(); - throw new ServiceException("操作失败"); + throw new ServiceException("操作失败:"+e.getMessage()); } } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index bc8b791e4..5e4776b92 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -240,7 +240,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService try { actHistoryInfoVo.setAssignee(StringUtils.isNotBlank(historicTaskInstance.getAssignee()) ? Long.valueOf(historicTaskInstance.getAssignee()) : null); } catch (NumberFormatException ignored) { - + log.warn("当前任务【{}】,办理人转换人员ID【{}】异常!", historicTaskInstance.getName(), historicTaskInstance.getAssignee()); } actHistoryInfoVoList.add(actHistoryInfoVo); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 14287ca2d..3e0e49f05 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -6,7 +6,6 @@ import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; @@ -308,26 +307,25 @@ public class WorkflowUtils { */ public static void setProcessInstanceListVo(Object obj, List idList, String fieldName) { List actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList); - if (obj instanceof Collection) { - Collection collection = (Collection) obj; + if (obj instanceof Collection collection) { for (Object o : collection) { - if (o != null) { - try { - String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString(); - ActHiProcinst actHiProcinst = actHiProcinstList.stream().filter(e -> e.getBusinessKey().equals(fieldValue)).findFirst().orElse(null); - if (ObjectUtil.isNotEmpty(actHiProcinst)) { - ProcessInstanceVo processInstanceVo = BeanUtil.toBean(actHiProcinst, ProcessInstanceVo.class); - processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus())); - ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo); - } else { - ProcessInstanceVo processInstanceVo = new ProcessInstanceVo(); - processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus()); - processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus())); - ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo); - } - } catch (Exception e) { - e.printStackTrace(); - throw new ServiceException(e.getMessage()); + String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString(); + if (CollUtil.isEmpty(actHiProcinstList)) { + ProcessInstanceVo processInstanceVo = new ProcessInstanceVo(); + processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus()); + processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus())); + ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo); + } else { + ActHiProcinst actHiProcinst = actHiProcinstList.stream().filter(e -> e.getBusinessKey().equals(fieldValue)).findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(actHiProcinst)) { + ProcessInstanceVo processInstanceVo = BeanUtil.toBean(actHiProcinst, ProcessInstanceVo.class); + processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus())); + ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo); + } else { + ProcessInstanceVo processInstanceVo = new ProcessInstanceVo(); + processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus()); + processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus())); + ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo); } } }