update 升级flowable到7.0.0.M2,调整工作流提交校验,调整工作流工具类

This commit is contained in:
songgaoshuai 2023-09-14 16:16:06 +08:00
parent 1c8f604672
commit 9cb54ea887
5 changed files with 38 additions and 35 deletions

View File

@ -59,7 +59,7 @@
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version> <flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
<!--工作流配置--> <!--工作流配置-->
<flowable.version>7.0.0.M1</flowable.version> <flowable.version>7.0.0.M2</flowable.version>
</properties> </properties>
<profiles> <profiles>

View File

@ -1,9 +1,10 @@
package org.dromara.workflow.common.enums; package org.dromara.workflow.common.enums;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import org.dromara.common.core.exception.ServiceException; 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) { public static String getEumByStatus(String status) {
if (StringUtils.isBlank(status)) { if (StringUtils.isBlank(status)) {
return null; return StrUtil.EMPTY;
} }
for (BusinessStatusEnum statusEnum : BusinessStatusEnum.values()) { for (BusinessStatusEnum statusEnum : BusinessStatusEnum.values()) {
@ -67,7 +68,7 @@ public enum BusinessStatusEnum {
return statusEnum.getDesc(); return statusEnum.getDesc();
} }
} }
return null; return StrUtil.EMPTY;
} }
/** /**
@ -76,14 +77,16 @@ public enum BusinessStatusEnum {
* @param status 状态 * @param status 状态
*/ */
public static void checkStartStatus(String status) { public static void checkStartStatus(String status) {
if (status.equals(WAITING.getStatus())) { if (WAITING.getStatus().equals(status)) {
throw new ServiceException("该单据已提交过申请,正在审批中!"); throw new ServiceException("该单据已提交过申请,正在审批中!");
} else if (status.equals(FINISH.getStatus())) { } else if (FINISH.getStatus().equals(status)) {
throw new ServiceException("该单据已完成申请!"); throw new ServiceException("该单据已完成申请!");
} else if (status.equals(INVALID.getStatus())) { } else if (INVALID.getStatus().equals(status)) {
throw new ServiceException("该单据已作废!"); throw new ServiceException("该单据已作废!");
} else if (status.equals(TERMINATION.getStatus())) { } else if (TERMINATION.getStatus().equals(status)) {
throw new ServiceException("该单据已终止!"); throw new ServiceException("该单据已终止!");
} else if (StringUtils.isBlank(status)) {
throw new ServiceException("流程状态为空!");
} }
} }
@ -93,16 +96,18 @@ public enum BusinessStatusEnum {
* @param status 状态 * @param status 状态
*/ */
public static void checkStatus(String status) { public static void checkStatus(String status) {
if (status.equals(FINISH.getStatus())) { if (FINISH.getStatus().equals(status)) {
throw new ServiceException("该单据已完成申请!"); throw new ServiceException("该单据已完成申请!");
} else if (status.equals(INVALID.getStatus())) { } else if (INVALID.getStatus().equals(status)) {
throw new ServiceException("该单据已作废!"); throw new ServiceException("该单据已作废!");
} else if (status.equals(CANCEL.getStatus())) { } else if (CANCEL.getStatus().equals(status)) {
throw new ServiceException("该单据已撤销!"); throw new ServiceException("该单据已撤销!");
} else if (status.equals(BACK.getStatus())) { } else if (BACK.getStatus().equals(status)) {
throw new ServiceException("该单据已退回!"); throw new ServiceException("该单据已退回!");
} else if (status.equals(TERMINATION.getStatus())) { } else if (TERMINATION.getStatus().equals(status)) {
throw new ServiceException("该单据已终止!"); throw new ServiceException("该单据已终止!");
} else if (StringUtils.isBlank(status)) {
throw new ServiceException("流程状态为空!");
} }
} }
} }

View File

@ -205,7 +205,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
return true; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new ServiceException("操作失败"); throw new ServiceException("操作失败:"+e.getMessage());
} }
} }

View File

@ -240,7 +240,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
try { try {
actHistoryInfoVo.setAssignee(StringUtils.isNotBlank(historicTaskInstance.getAssignee()) ? Long.valueOf(historicTaskInstance.getAssignee()) : null); actHistoryInfoVo.setAssignee(StringUtils.isNotBlank(historicTaskInstance.getAssignee()) ? Long.valueOf(historicTaskInstance.getAssignee()) : null);
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
log.warn("当前任务【{}】,办理人转换人员ID【{}】异常!", historicTaskInstance.getName(), historicTaskInstance.getAssignee());
} }
actHistoryInfoVoList.add(actHistoryInfoVo); actHistoryInfoVoList.add(actHistoryInfoVo);
} }

View File

@ -6,7 +6,6 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; 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.SpringUtils;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
@ -308,12 +307,15 @@ public class WorkflowUtils {
*/ */
public static void setProcessInstanceListVo(Object obj, List<String> idList, String fieldName) { public static void setProcessInstanceListVo(Object obj, List<String> idList, String fieldName) {
List<ActHiProcinst> actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList); List<ActHiProcinst> actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList);
if (obj instanceof Collection) { if (obj instanceof Collection<?> collection) {
Collection<?> collection = (Collection<?>) obj;
for (Object o : collection) { for (Object o : collection) {
if (o != null) {
try {
String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString(); 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); ActHiProcinst actHiProcinst = actHiProcinstList.stream().filter(e -> e.getBusinessKey().equals(fieldValue)).findFirst().orElse(null);
if (ObjectUtil.isNotEmpty(actHiProcinst)) { if (ObjectUtil.isNotEmpty(actHiProcinst)) {
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(actHiProcinst, ProcessInstanceVo.class); ProcessInstanceVo processInstanceVo = BeanUtil.toBean(actHiProcinst, ProcessInstanceVo.class);
@ -325,10 +327,6 @@ public class WorkflowUtils {
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus())); processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo); ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
} }
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(e.getMessage());
}
} }
} }
} }